Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sixline/vortexdm
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".
https://github.com/sixline/vortexdm
downloader ffmpeg python youtube youtube-dl youtube-downloader
Last synced: 3 months ago
JSON representation
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".
- Host: GitHub
- URL: https://github.com/sixline/vortexdm
- Owner: Sixline
- License: gpl-3.0
- Created: 2022-05-04T00:01:38.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-27T00:39:36.000Z (12 months ago)
- Last Synced: 2024-10-02T19:37:03.248Z (4 months ago)
- Topics: downloader, ffmpeg, python, youtube, youtube-dl, youtube-downloader
- Language: Python
- Homepage:
- Size: 501 KB
- Stars: 31
- Watchers: 2
- Forks: 13
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.txt
- License: LICENSE.md
Awesome Lists containing this project
README
![Logo](https://raw.githubusercontent.com/Sixline/VortexDM/main/icons/vortexdm.png)
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](https://img.shields.io/github/issues-raw/Sixline/VortexDM?color=brightgreen)](https://github.com/Sixline/VortexDM/issues) - [![GitHub Closed Issues](https://img.shields.io/github/issues-closed-raw/Sixline/VortexDM?color=blueviolet)](https://github.com/Sixline/VortexDM/issues?q=is%3Aissue+is%3Aclosed)
**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!](https://github.com/Sixline/VortexDM/releases/latest)):
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:
```sh
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:
```sh
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:
```sh
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```sh
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
```sh
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](https://docs.python.org/3/library/tkinter.html): standard Python interface to the Tcl/Tk GUI toolkit.
- [FFmpeg](https://www.ffmpeg.org/): 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](http://pycurl.io/docs/latest/index.html): a Python interface to libcurl, the multiprotocol file transfer library. Used as the download engine.
- [youtube_dl](https://github.com/ytdl-org/youtube-dl): Famous YouTube downloader, limited use for meta information extraction only but videos are downloaded using PycURL.
- [yt_dlp](https://github.com/yt-dlp/yt-dlp): yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc.
- [Certifi](https://github.com/certifi/python-certifi): required by PycURL for validating the trustworthiness of SSL certificates.
- [Plyer](https://github.com/kivy/plyer): for systray area notification.
- [AwesomeTkinter](https://github.com/Aboghazala/AwesomeTkinter): for application GUI.
- [Pillow](https://python-pillow.org): the friendly PIL fork. PIL is an acronym for Python Imaging Library.
- [pystray](https://github.com/moses-palmer/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](https://github.com/Sixline/VortexDM/issues/new) for bugs, feature requests, or suggestions.2- Check the [Developer Guidelines](https://github.com/Sixline/VortexDM/blob/master/docs/developer_guide.md).
3- Check [open issues](https://github.com/Sixline/VortexDM/issues?q=is%3Aopen+is%3Aissue) and see if you can help.
4- Fork this repo and make a pull request.
# Contributors:
Please check [contributors.md](https://github.com/Sixline/VortexDM/blob/master/contributors.md) for a list of contributors.