A Kotlin & Jetpack Compose program used to download episodes, series and movies from: https://www.wcoflix.tv/
If you check that website out, it's one of the best video sites for free cartoons and anime. It's also the most vulnerable.
Many of the anime websites out there are locked down really hard which makes wco the perfect target.
Now also supports M3U8 Videos & Episodes with 2 videos.
Free movie downloading has officially been killed
You will have to create a wcopremium.tv account and use those credentials in the settings now
We're still back for blood. >:(
If you enjoy this project then please consider donating.
I would greatly appreciate it. :)
ZenDownloader should now support Windows, Mac and Linux.
If the new universal JAR doesn't work for you, please report any issue here: JAR Issue
It has been tested on Windows 7, Windows 10, Windows 11, Ubuntu 22.04.04, Pop!_OS 22.04 and Fedora 42.
These are tests with the old installer. The new JAR hasn't been fully tested yet.
You will also need to install Chrome. This version doesn't support any other browsers.
Windows Requires Visual C++: Visual C++ Redistributable for Visual Studio 2015
You won't need to download the JRE because it comes pre-packaged.
The new packages are all labelled for different operating systems.
They are each structured to be easily launchable with either a run.bat
or a run.sh
file.
These scripts will open the launch.jar
which is used for easy updates.
Note: You can launch the ZenDownloader JAR directly, but updates won't be supported.
The JAR will only run on Java 21 or higher.
If you already have Chrome installed, make sure it's version 108 or higher.
For Windows:
For Mac:
For Linux (Debian):
Run these commands in the terminal:
sudo apt update
sudo apt install google-chrome-stable
Input your password and you're done.
For Linux (Red Hat Enterprise):
sudo dnf config-manager setopt google-chrome.enabled=1
sudo dnf install -y google-chrome-stable
Input your password and you're done.
You're on your own for any other version of Linux for now.
Download The Latest Release: Releases
Choose the right .zip
package for your operating system.
I'm not entirely sure how to check your PC hardware, but hopefully you already know.
Most Windows Are AMD64. Windows ARM64 isn't directly supported
Apple Silicon = ARM64
Apple Intel = AMD64
AARCH64 = ARM64
For Windows:
Extract the zip here and open the run.bat
file.
For Mac/Linux:
Extract the zip here, open the extracted folder, and right click inside the folder and open the terminal.
If you can't do that, open the terminal somewhere else and redirect it to the extracted folder root.
Command Example:
cd /home/ZenDownloader-linux-amd64/
If you're on Mac, you might need to bypass the Gatekeeper with the command:
xattr -d com.apple.quarantine run.sh
Now use the command:
./run.sh
If it fails to run due to permissions, use the command:
chmod +x run.sh
Input your password if it asks.
FFmpeg is used to merge m3u8 ts files and to merge video and audio files.
FFplay is used to play videos directly instead of downloading them.
ZenDownloader will now show a window to download FFmpeg and FFplay at launch.
If that fails, or you want to prepare beforehand, you can find all the binaries for every operating system here:
https://github.com/Tyrrrz/FFmpegBin/releases/tag/7.1.1
Once downloaded, extract here and copy the filesffmpeg
& ffplay
into the database folder.
Example of path: C:\Users\CuratedDev\.zen_database\ffmpeg
You can find the database folder in this guide: (https://github.com/NobilityDeviant/ZenDownloader/blob/master/database/README.md#database-folder)
Windows files will have the .exe
extension.
Mpv is now an option to use for using the "Watch Online" feature.
It comes with it's own UI unlike ffplay and allows you to choose all the m3u8 options available.
Right-clicking one of the icons on the bottom of the mpv window will show the list of options.
You can find downloads for mpv here: https://mpv.io/installation/
Choose whatever download you need for your operating system. You should know your OS at this point.
Once downloaded, you will have to choose mpv in the new Watch Online Video Player
setting.
When choosing mpv as the option, it will show a new option to choose your own mpv path.
This path must point to an mpv executable.
If mpv is executable in the command prompt or terminal, you should keep the custom path blank.
The custom mpv path will override the mpv command even if it doesn't exist.
Test this by opening the command prompt/terminal and executing the command: mpv
I will not give much info on installing mpv, but if you have any issues, create a ticket and I will try to help.
For your first run, you will be greeted with the Asset Updater
This will download all the files (besides images) from the Database Folder
If you want a better User Experience with the Database Window or if you want to see Random Series, you should also download the images.
A guide for that can be found here: Download Images
If the Asset Updater isn't working for you, then follow this guide to ensure you get all the updates:
Database Guide: Guide
There's now an option to add your own path to the Chrome Browser and ChromeDriver.
First you're going to want to install Chrome from the offical website. You can follow the Download & Install for that.
You are going to need to find the version and the installed path of Chrome.
Common Chrome Install Paths:
Windows:
C:\Program Files\Google\Chrome\Application\chrome.exe
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe
Mac:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Linux:
/usr/bin/google-chrome
/opt/google/chrome/google-chrome
/usr/bin/google-chrome-stable
/opt/google/chrome/google-chrome-stable
Find Chrome Version:
Universal:
The Chrome version should be displayed inside the Settings of Chrome under About Chrome.
Windows:
You can navigate to the install folder, find chrome.exe and hover over it. The Windows tooltip should show you the version.
Mac:
Open the terminal and use the command:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version
Use the path to Chrome you found earlier.
Mac commands use \
if the directory name contains a space. Make sure to include them.
Linux:
Open the terminal and use the command:
google-chrome-stable --version
or
google-chrome --version
Download Chrome Driver
Now visit: Chrome Driver Releases
and find the version closest to yours.
If you can't find an exact match, you can use the link it provides for your Operating System and replace the version with your own.
For example: 128.0.6613.85
Settings
Now inside Settings you will see 2 options:
Chrome Browser Path
and
Chrome Driver Path
Click the Set File button for each path respectively to choose your files.
The browser path will be the chrome.exe
you were using earlier to check the version.
The driver path will be the chromedriver.exe
you just downloaded.
Linux will be a little bit different.
Linux chromedrivers will not have an extension.
The executable for Linux will be different as well. I have no clue where that would be, but I'll update this when I find out.
All videos get downloaded/converted to MP4 and I don't have intentions to allow different formats atm.
Make sure you have the correct codecs to watch mp4s.
Most operating systems do come with them, but some don't.
Search Engines are your friends.
Home
Downloads
Settings
Download Confirm
Database
Recent
History
Episode Multi-Select
When you're in the Download Confirm Window you can multi-select specific episodes if there's a ton of them.
Hold the Shift Key to enable Shift Mode
and click on the episode to highlight it. The first episode will be the starting point.
Now let go of the shift key, scroll down/up to whatever episode you want, hold the shift key again and select an episode. This will highlight every episode in between the starting point to the last one.
Now once everything you want to select is highlighted, let go of the shift key and press the Select % Highlighted Episode(s)
Button.
This will select everything that's been highlighted. It will lag, but just wait for it to finish.
Timeout Errors
If you are experiencing any timeout errors inside the Error Console
, go to the Settings Tab
and increase the timeout to something higher.
The timeout option effects everything related to timeouts and should help if you're having any issues.
You can also use this section if there isn't a distribution for your operating system. As long as you can use IntelliJ, you're good to go.
I 100% recommend using IDEA. Don't use Eclipse or Netbeans because they're not fully supported. This project is built using JDK 21.
Download IntelliJ: Download
Press the Download button, Scroll down and download the Community Edition.
For Windows & Mac, it should be as simple as opening the downloaded file.
For Linux, you have to extract the tar ball.
Either right click it in the file and select Extract Here or find the terminal command for extracting tar balls.
Open the extracted folder, go into bin
, right click an empty spot in the folder, open the Terminal and use the command:
./idea
In order to import the project through VCS, Git
is needed as well.
Git is recommended for to easy updating
Download Git: Download
Once those are installed open IntelliJ.
You will be greeted with the project window.
Select Get From VCS
Scroll up and get the git url:
Paste it in the URL field and press the Clone button.
Once imported it will throw an error about the JDK if it's not installed.
Click the error in the console and you'll be greeted with this window:
Under Gradle JVM select it and select Download JDK
For the version you will want to select 21
Press Download, press Apply and press Ok
Once that's been downloaded, go to File > Close Project
and then reopen it and you should be good to go.
If there's a warning on top of IntelliJ to install Java, you have to accept it.
Now once everything is imported and downloaded, open the project tree on the left (Folder Icon) and look for:
src > main > kotlin > Main.kt
Right click Main.kt and select Run MainKt
Or even better, you can use the run
task from Gradle under ZenDownload > Tasks > compose desktop
.
Creating OS distributables is no longer supported or encouraged
You can however create the JAR distributables if you want with the Gradle Task under:
ZenDownloader > Tasks > custom jar > packageJARDistributables
Note: This will download all the JDKs for every operating system that will total in about 2GB of data.
That's it! If you have any issues, please create an issue in Github and i'll get right on it.