python open source (Internet Download Manager) with multi-connections, high speed engine, based on python, LibCurl, and youtube_dl https://github.com/firedm/FireDM
Homepage: https://github.com/firedm/FireDM
-
FireDM is a python open source (Internet Download Manager)
with multi-connections, high speed engine,
it downloads general files and videos from youtube and tons of other streaming websites .
Developed in Python, based on "LibCurl", and "youtube_dl".
Features:
running in command line: show help by typing firedm -h
running GUI: Refer to user guide at https://github.com/firedm/FireDM/blob/master/docs/user_guide.md
Run FireDM without any installation (recommended)
Windows portable version (Download!):
available in .zip format.
unzip, and run from FireDM.exe, no installation required.
Linux portable version (Download!):
available in .AppImage format.
download file, then mark it as executable, and run it, no installation required,
tested on ubuntu, mint, and manjaro.
note: ffmpeg is not included and must be installed separately if not exist
mark file as executable by right clicking the file> Properties> Permissions> Allow executing file as a program,
or from terminal by chmod +x FireDM_xxx.AppImage
To check for ffmpeg use this command:
which ffmpeg
# expected output if installed
/usr/bin/ffmpeg
if ffmpeg is missing you can install it by sudo apt install ffmpeg
on debian based or sudo pacman -S ffmpeg
on Arch based distros.
1- check python version (minimum version required is 3.6): python3 --version
2- install required packages first:
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 firedm using pip:
python3 -m pip install firedm --user --upgrade --no-cache
1- check python version (minimum version required is 3.6): python3 --version
2- install required packages first:
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 clone this repo, create virtual environment, install requirements, create launch script, and finally run FireDM
git clone --depth 1 https://github.com/firedm/FireDM.git
python3 -m venv ./.env
source ./.env/bin/activate
python3 -m pip install -r ./FireDM/requirements.txt
echo "source ./.env/bin/activate
python3 ./FireDM/firedm.py \$@
" > firedm.sh
chmod +x ./firedm.sh
./firedm.sh
optionally create .desktop file and add FireDM to your applications
FireDMLSPATH=$(realpath ./firedm.sh)
echo "[Desktop Entry]
Name=FireDM
GenericName=FireDM
Comment=FireDM Download Manager
Exec=$FireDMLSPATH
Icon=firedm
Terminal=false
Type=Application
Categories=Network;
Keywords=Internet;download
" > FireDM.desktop
cp ./FireDM.desktop ~/.local/share/applications/
mkdir -p ~/.local/share/icons/hicolor/48x48/apps/
cp ./FireDM/icons/48x48.png ~/.local/share/icons/hicolor/48x48/apps/firedm.png
Linux X-server will raise an error if some fonts are missing especially emoji fonts, for more info refer to issue #200.
Mac - Tkinter, as mentioned in "python.org" the Apple-supplied Tcl/Tk 8.5 has serious bugs that can cause application crashes. If you wish to use Tkinter, do not use the Apple-supplied Pythons. Instead, install and use a newer version of Python from python.org or a third-party distributor that supplies or links with a newer version of Tcl/Tk.
refer to issue #113
systray icon: depends on Gtk+3 and AppIndicator3 on linux, please refer to your distro guides on how to install these packages if you need systray to run properly
Python 3.6+: tested with python 3.6 on windows, and 3.7, 3.8 on linux
tkinter
ffmpeg : for merging audio with youtube DASH videos "it will be installed automatically on windows"
Fonts: (Linux X-server will raise an error if some fonts are missing especially emoji fonts, below are the recommended fonts to be installed, for more info refer to issue #200.)
ttf-linux-libertine
ttf-inconsolata
ttf-emojione
ttf-symbola
noto-fonts
pycurl: is a Python interface to libcurl / curl as our download engine,
youtube_dl: famous youtube downloader, limited use for meta information extraction only but videos are downloaded using pycurl
yt_dlp: a fork of youtube-dlc which is inturn a fork of youtube-dl
certifi: required by 'pycurl' for validating the trustworthiness of SSL certificates,
plyer: for systray area notification.
awesometkinter: for application gui.
pillow: imaging library for python
pystray: for systray icon
Note for pycurl:
for windows users who wants to run from source or use pip:
unfortunately, pycurl removed binary versions for windows and this link "https://dl.bintray.com/pycurl/pycurl/" is now dead, and one has to build pycurl from source which is not an easy task, details are here http://pycurl.io/docs/latest/install.html#windows
normal pip install i.e python -m pip install pycurl
probably will fail on windows, your best choice is to use FireDM standalone/portable exe version.
for linux users:
there is no issues, since most linux distros have curl preinstalled, so pycurl will link with libcurl library to get built with no issues, checked with python versions 3.6, 3.7, and 3.8 working with no problems.
As said, "if the product is free, then you are the product", most free closed-source software collect data about you, some of them are toxic and plant trojans/spy-wares in your system, with open source, nothing hidden, and source code exposed to thousands of programmers, no one can play dirty games.
Need to mention, this project is never made to compete with other download managers, it is just a "hopefully useful" addition.
1- by testing the application and opening
new issue for bug
reporting, feature request, or suggestions.
2- check
developer guidelines.
3- check
todo list.
4- check open issues, see if you can help.
5- fork this repo and pull request
*help edit this list by writing a comment in this issue
Please check contributors.md for a list of contributors
your feedback is most welcomed by filling a
new issue
or email to: [email protected]
Author:
Mahmoud Elshahat
2019-2021