Like this project? Consider supporting me, for more awesome updates
More and more, I face the challenge of testing. I code on my own Debian machine, and use a Windows 10 VM to compile the executable. But testing has become more and more a challenge, especially for new features.
If you are anyhow interested in helping (there are various ways to!), go to the dedicated issue (#32), and comment there. The concept is still very young for me, sorry that.
Conferences, meetings and presentations held on Zoom are often recorded and stored in the cloud, for a finite amount of time. The host can chose to make them available to download, but it is not mandatory.
Nonetheless, I believe if you can view it, you can download it. This script makes it easy to download any video stored on the Zoom Cloud. You just need to provide a valid zoom record URL, and optionally a filename, and it will download the file.
The script was developed and tested under GNU/Linux (precisely, Debian 10). Thus, it should work for about any GNU/Linux distro out there, with common settings. You basically only need Python3 in your path.
New from 2020.06.09 There now exists an executable file
zoomdl.exe for Windows. It was kinda tested under Windows 10. Because I never coded under Windows, I have very few tests, mostly empirical ones. Expect bugs! If you encounter a Windows-specific error, don't expect much support. If the error is related to the general logic of the program, report it and I'll do my best to fix it.
You need to have a valid Python3 installation. Except from that, just download the script
zoomdl.exe) and run it like a normal binary. If you wish to make it available system-wide, you can copy it to
/usr/local/bin/ (or anywhere else available in your PATH). Then you can simply use it wherever you want.
The following two commands make that easy. In a terminal, run:
sudo wget https://github.com/Battleman/zoomdl/releases/latest/download/zoomdl -O /usr/bin/zoomdl sudo chmod +x /usr/bin/zoomdl
Once you have done that, you can use your terminal and type the commands normally.
This is still in beta
Grab the dedicated binary
zoomdl.exe, and launch it using your command line. If you don't know how, visit this wikihow. You may encounter warning from your anti-virus, you can ignore them (I'm not evil, pinky-promise). You probably don't need a Python3 installation, it should be contained within the executable.
If there is a domain in your url, make sure to include it, it's crucial.
zoomdl [-h] -u/--url 'url' [-f/--fname 'filename'] [-p/--password 'password'] [-c/--count-clips count] [-d/--filename-add-date] [--user-agent 'custom_user_agent]
-u/--urlis mandatory, it represents the URL of the video
-f/--fnameis optional, it is the name of the resulting file without extension. If nothing is provided, the default name given by Zoom will be used. Extension (
.mkv,... is automatic)
-p/--passwordis too optional. Set it when your video has a password.
-c/--count-clips: Sometimes, one URL can contain multiple clips. This tunes the number of clips that will be downloaded. Recordings with multiple clips seem to be quite rare, but do exist. The parameter
countworks as follow:
-d/--filename-add-datewill append the date of the recording to the filename. without effect if
--user-agent(no shorthand notation): lets you specify a custom User-Agent (only do that if you know what you're doing and why)
--cookies(no shorthand notation): specify the path to a cookie jar file.
Some videos are protected with more than a password. You require an SSO, or to solve a captcha. The
cookies option allows you to perform all the steps in a browser, and then use the cookies to access the video. This functionality is similar to Youtube-dl's same option.
.zoom.us), so export at least "cookies for this site", or "cookies for this domain", or whatever it's called.
If you want to download several videos who use the same login (like SSO), you only need to export the cookies once
I see a lot of people who don't understand what the above means. Here is a short explanation:
-u) and an equivalent long version (with two dashes, like
--url); the short and long version are shown separated by a
/; you must only use one of them.
-f, that allows you to input a custom filename). The others (for the moment, only
-u) are mandatory.
-hparameter only displays a short help and commands explanation
For example, those are all valid commands (ofc by replacing the URLs):
zoomdl -u 'https://my_url' -f "recording_from_monday" zoomdl --url 'https://my_url' zoomdl -p '$28fn2f8' --filename-add-date --filename "recording_from_tuesday" -u 'https://my_url' --user-agent "Windows 10 wonderful User-Agent" -v 3
The quotes are not mandatory, but if your filename/url/password/... contains reserved characters (
%...), quotes are the way to go.
Under Linux/OSX, it is strongly advised to use single quotes, because
"4$g3.2" will replace
$g3 by nothing, while
'4$g3.2' will leave the string as-is.
Under Windows, I think you must use double quotes everywhere. Don't quote me on that.
There are 3 type of valid urls.
If you wish to build from sources, here is a quick howto. First, you need to clone the repository and enter it with a terminal. Then:
Run the command
./devscript.sh compile. It basically installs all the dependencies with pip in a temporary directory, then zips it.
pip install -U pyinstaller)
wincompile.bat. It calls just calls
pyinstallerand cleans the generated folders and files, leaving only the exe file.
All dependencies are bundled within the executable. This allows to make a standalone execution without need for external libraries.
The folder executable contains requests (and its dependencies), an awesome wrapper for HTTP(s) calls. Please check them out!