Vortex Download Manager (VortexDM) is an open-source Python Internet download manager with a high speed multi-connection engine. It downloads general files and videos. Developed in Python, based on "PycURL" and "youtube_dl".
Original project, FireDM, by Mahmoud Elshahat.
Homepage: https://github.com/Sixline/VortexDM
PyPI Homepage: https://pypi.org/project/vortexdm
Features:
- High download speeds - based on PycURL
- Multi-connection downloading
- Automatic file segmentation
- Automatic refresh for dead links
- Resume uncompleted downloads
- Support for YouTube and a lot of other stream websites using youtube-dl to fetch info and PycURL to download media
- Download entire videos, playlists, or selected videos
- Download fragmented video streams and encrypted/nonencrypted HLS media streams
- Watch videos while downloading some videos will have no audio until they finish downloading
- Download video subtitles
- Write video metadata to downloaded files
- Built-in updater
- Scheduled downloads
- Re-using existing connections
- Clipboard monitor
- Proxy support (http, https, socks4, and socks5)
- User/pass authentication, referee link, video thumbnail, and subtitles
- Use custom cookie files
- MD5 and SHA256 checksums
- Custom GUI themes
- Set download speed limit
- Shell commands or computer shutdown on download completion
- Control number of the concurrent downloads and maximum connections
Running in command line: show help by typing vortexdm -h
Running the GUI: Refer to the user guide at https://github.com/Sixline/VortexDM/blob/master/docs/user_guide.md
Run VortexDM without any installation (recommended)
-
Windows Portable Version (Download!):
Available in .zip format. Built with 64-bit Python 3.11+ and will only work on 64-bit Windows 10+.
Unzip and run VortexDM-GUI.exe, no installation required. -
Linux Portable Version
Removing this section for now as I am not familiar with building AppImages. Will revisit.
1- Check python version (minimum version required is 3.8): python3 --version
2- Install required packages:
sudo apt install ffmpeg libcurl4-openssl-dev libssl-dev python3-pip python3-pil python3-pil.imagetk python3-tk python3-dbus gir1.2-appindicator3-0.1
sudo apt install fonts-symbola fonts-linuxlibertine fonts-inconsolata fonts-emojione
3- Install Vortex Download Manager using pip:
python3 -m pip install vortexdm --user --upgrade --no-cache
Running from source code inside a Python virtual environment (Linux Only - Debian/Ubuntu Based Shown):
1- Check python version (minimum version required is 3.8): python3 --version
2- Install required packages:
sudo apt install ffmpeg libcurl4-openssl-dev libssl-dev python3-pip python3-pil python3-pil.imagetk python3-tk python3-dbus gir1.2-appindicator3-0.1
sudo apt install fonts-symbola fonts-linuxlibertine fonts-inconsolata fonts-emojione
3- Run below code to do the following:
- Clone this repo
- Create Python virtual environment
- Install the requirements
- Create launch script
- Run VortexDM
git clone https://github.com/Sixline/VortexDM
python3 -m venv ./.env
source ./.env/bin/activate
python3 -m pip install -r ./VortexDM/requirements.txt
echo "source ./.env/bin/activate
python3 ./VortexDM/vortexdm.py \$@ " > vortexdm.sh
chmod +x ./vortexdm.sh
./vortexdm.sh
Optionally create .desktop file and add VortexDM to your applications
VortexDMLSPATH=$(realpath ./vortexdm.sh)
echo "[Desktop Entry]
Name=VortexDM
GenericName=VortexDM
Comment=Vortex Download Manager
Exec=$VortexDMLSPATH
Icon=vortexdm
Terminal=false
Type=Application
Categories=Network;
Keywords=Internet;download
" > VortexDM.desktop
cp ./VortexDM.desktop ~/.local/share/applications/
mkdir -p ~/.local/share/icons/hicolor/48x48/apps/
cp ./VortexDM/icons/vortexdm.png ~/.local/share/icons/hicolor/48x48/apps/vortexdm.png
-
Linux X Server will raise an error if some fonts are missing, especially emoji fonts - See Dependencies below
-
Mac - Tkinter - Can have issues depending on versions. See here: https://www.python.org/download/mac/tcltk
-
Systray Icon: Depends on GTK 3+ and AppIndicator3 on Linux. Install these packages if you need systray to run properly.
-
Python 3.8+: Tested with Python 3.11+ on Windows 10 and Ubuntu Linux
-
Tkinter: standard Python interface to the Tcl/Tk GUI toolkit.
-
FFmpeg: for merging audio with DASH videos.
-
Fonts: (Linux X Server will raise an error if some fonts are missing, especially emoji fonts. Below are the recommended fonts to be installed.
ttf-linux-libertine ttf-inconsolata ttf-emojione ttf-symbola noto-fonts
-
PycURL: a Python interface to libcurl, the multiprotocol file transfer library. Used as the download engine.
-
youtube_dl: Famous YouTube downloader, limited use for meta information extraction only but videos are downloaded using PycURL.
-
yt_dlp: yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc.
-
Certifi: required by PycURL for validating the trustworthiness of SSL certificates.
-
Plyer: for systray area notification.
-
AwesomeTkinter: for application GUI.
-
Pillow: the friendly PIL fork. PIL is an acronym for Python Imaging Library.
-
pystray: for systray icon.
Note
PycURL 7.45.3 - 2024-02-17 - Windows binary wheels are now available.
Note for PycURL:
For Windows users who wants to run from source or use pip:
Unfortunately, PycURL removed binary versions for Windows and it now has to be built from source. See here: http://pycurl.io/docs/latest/install.html#windows
python -m pip install pycurl
will fail on Windows, your best choice is to use the portable version.
1- By testing the application and opening new issues for bugs, feature requests, or suggestions.
2- Check the Developer Guidelines.
3- Check open issues and see if you can help.
4- Fork this repo and make a pull request.
Please check contributors.md for a list of contributors.