Skip to content

Vortex Download Manager (VortexDM) - 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".

License

Sixline/VortexDM

Repository files navigation

Logo 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

GitHub Issues - GitHub Closed Issues

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

How to use VortexDM:

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

Portable VortexDM Versions:

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.

Manually installing VortexDM with pip (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- 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

Known Issues:

  • 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.

Dependencies:

  • 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.

How to contribute to this project:

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.

Contributors:

Please check contributors.md for a list of contributors.

About

Vortex Download Manager (VortexDM) - 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".

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages