pyIDM is a free, open-source alternative to IDM (Internet Download Manager), used to download general files and videos from youtube as well as other streaming websites. It is developed using Python (requires Python 3.6+) and relies only on open source tools and libraries such as pycurl, youtube_dl, FFmpeg, and pysimplegui.
Recommended Read: 10 Most Popular Download Managers for Linux in 2020
It features multiple-connections, a speed engine (and it offers high download speeds based on libcurl); resume uncompleted downloads, support for fragmented video streams, support for encrypted/non-encrypted HLS (HTTP Live Streaming) media streams.
Besides, it also supports scheduling downloads, re-using an existing connection to a remote server, and HTTP proxy support. And it allows users to control options such as selecting a theme (there are 140 themes available), set proxy, selecting segment size, speed limit, maximum concurrent downloads and maximum connections per download.
How to Install pyIDM in Linux
First, you need to install the required packages which are: pip – the de-facto standard package installer and manager for Python, Tkinter – Python’s de-facto standard GUI (Graphical User Interface) package, xclip – a command-line interface to the X11 clipboard and FFmpeg – a widely used multimedia framework.
$ sudo apt install python-pip python3-pip python3-tk xclip ffmpeg [On Debian/Ubuntu] # dnf install python-pip python3-pip python3-tkinter xclip ffmpeg [On Fedora/CentOS/RHEL] # yum install python-pip python3-pip python3-tkinter xclip ffmpeg [On Fedora/CentOS/RHEL]
After installing the required packages, use the pip3 utility to install pyIDM, it will attempt to install missing dependencies automatically once you run it.
$ sudo pip3 install pyIDM OR $ pip3 install pyIDM
Once the installation is complete, you can launch pyIDM from a terminal window as shown.
To download a file, copy its download link and paste it in the URL input box. Note that when open, pyIDM will use the xclip program (or pyperclip or xsel if installed) to auto-detect URLs copied in the system clipboard, and auto-paste the download links in the URL field. Then click the Download button as shown in the following screenshot.
To view downloads that are underway, click on the Downloads tab. You can also change settings by clicking on the Settings tab.
For more information, visit the pyIDM Github repository: https://github.com/pyIDM/pyIDM.
pyIDM is an open-source alternative to IDM built using Python and open-source tools such as FFmpeg and youtube_dl. Try it out and give us feedback via the comment form below.
10 thoughts on “PyIDM – An Open Source Alternative to IDM (Internet Download Manager)”
PyIDM may be called from jupyter python?
Can I create a code that automatically pauses the downloaded file when the internet connection is disconnected?
On a Linux Mint 18.3, I’m using “pyenv” to deal with a different versions of python and “virtualenvs“.
I had a problem after installing “python 3.7.4” with “pyenv“. Apparently this version of python doesn’t have “tkinter“, so “pyidm” was not working.
The alternative I’ve found was to install “python 3.7.2” with “pyenv” and everything is working fine now.
Many thanks for the useful feedback.
I search a lot of sites but I didn’t find a helpful resource. I think this was one of the most simple blogs I read.
Just follow the command and install it in seconds.
thanks a lot for your help
My best blog of the day
We are glad that this guide helpful to you. Many thanks for the feedback.
The dependencies you list are completely wrong, see the requirements.txt:
True, the dependencies in
https://github.com/pyIDM/pyIDM/blob/master/requirements.txtare automatically installed when you install pyIDM using pip as mentioned: “After installing the required packages, use the pip3 utility to install pyIDM, it will attempt to install missing dependencies automatically once you run it.”
Packages such as xclip, ffmpeg, and tkinter need to be installed before installing pyIDM, otherwise, it will not open.
Thanks a lot
but I could not install under centos 7
What error(s) did you get?