youtube2zim
allows you to create a ZIM file
from a Youtube Channel/Username or one-or-more Playlists.
It downloads the video (webm
or mp4
extension โ optionnaly
recompress them in lower-quality, smaller size), the thumbnails, the
subtitles and the authors' profile pictures ; then, it create a static
HTML files folder of it before creating a ZIM off of it.
ffmpeg
for video transcoding (only used with--lower-quality
).zimwriterfs
for ZIM file packaging. Use--no-zim
to skip this step.curl
andunzip
to install Javascript dependencies. Seeget_js_deps.sh
if you want to do it manually.
Here comes a few different ways to install youtube2zim
.
youtube2zim
is a Python3 software. If you are not using the
Docker image, you are advised to use it in a
virtualenv to avoid installing software
dependences on your system.
virtualenv -p python3 ./ # Create virtualenv
source bin/activate # Activate the virtualenv
pip3 install youtube2zim # Install dependencies
youtube2zim --help # Display youtube2zim help
At the end, call deactivate
to quit the virtual environment.
See requirements.txt
for the list of python dependencies.
docker run -v my_dir:/output openzim/youtube youtube2zim --help
sudo pip3 install -U youtube2zim
youtube2zim
uses Youtube API v3 to fetch data from Youtube. You thus need to provide an API_KEY
to use the scraper.
To get an API:
- Connect to Google Developers Console
- Create a new Project then Select it.
- When asked, choose Create Credentials and select the API Key type. (Credentials page)
youtube2zim --api-key "<your-api-key>" --type user --id "Vsauce"
- Your API_KEY is subject to usage quotas (10,000 requests/day) so use
--only_test_branding
when adjusting parameters and branding to not waste your quota. - On macOS, the locale setting is buggy. You need to launch it with
LANGUAGE
environment variable (as ISO-639-1) for the translations to work.
LANGUAGE=fr youtube2zim --language fra
Before contributing be sure to check out the CONTRIBUTING.md guidelines.