A simple tool to generate Podcast-like RSS feeds from youtube (or other youtube-dl supported services) channels, using youtube-dl
Project description
ydl-podcast
A simple tool to generate Podcast-like RSS feeds from youtube (or other
youtube-dl supported services) channels, using
youtube-dl
.
Setup
Install package with requirements:
Youtube-dl:
pip install ydl-podcast[youtube-dl]
yt-dlp:
pip install ydl-podcast[yt-dlp]
Configuration
Edit the config.yaml file to list your podcast sources and configure them, as well as edit general configuration.
The available settings are the following.
General settings
output_dir
: local directory where the downloaded media will be stored, and the podcast xml files generated.url_root
: root url for the static files (used in the generation of the XML to point to the media files.subscriptions
: a list of feeds to subscribe to.youtube-dl-module
: Alternative youtube-dl python module. By default, this uses youtube-dl, but can leverage forks such as yt-dlp.
Feed settings
Mandatory
name NAME
: Name of the podcast source. Used as the podcast title, and media directory name.url URL
: source url for the youtube (or other) channel.
Optional
audio_only True/False
: ifTrue
, audio will be extracted from downloaded videos to create an audio podcast.retention_days N
: only download elements newer thanN
days, and automatically delete elements older.download_last N
: only download the latestN
videos.initialize True/False
: ifTrue
, then downloads everything on the first run, no matter thedownload_last
orretention_days
specified.output_dir
: local directory where the downloaded media will be stored, and the podcast xml files generated.url_root
: root url for the static files (used in the generation of the XML to point to the media files.format
: file format to force youtube-dl to use (eg mp4, webm, mp3 for audio only…)best
: force best quality (only useful when specifying a format).ydl_options
: list of raw youtube-dl options to use. For experienced users, since this will likely yield issues if not understood.nfo_files
: generates nfo files for subscriptions and downloaded episodes (simulates a "tvshow" nfo for the subscription and "tvshow episode" for each video). This helps plex, kodi, jellyfin import correct metadata. Does NOT supportaudio_only
feeds at this point.skip_download
: Don't perform download, just generate the Atom feed from the existing files. Mandatoryurl
parameter can be skipped ifskip_download
is set totrue
download_as_playlist
: Pass the url to the downloader directly, without processing the metadata of each item in the playlist. This is helpful with generic urls, and a few specific extractors.
Usage
Using cron or your favorite scheduler, run:
ydl_podcast [configfile.yaml]
You can then use your favorite web server to serve the files (a good idea is to
exclude the *.json
and *.part
files from being served as the first might
leak information, and the second is unnecessary.
eg with nginx:
root /var/www/static/podcasts/;
location ~ (\.json$|\.part$) {
return 403;
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ydl_podcast-1.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6eef9e507d7d99be4e2ed470d5db21ce44daa11ccde5183c4b4d6455420c803c |
|
MD5 | 8d08341ba687a2ec9cf0686ac8abf9a6 |
|
BLAKE2b-256 | bcdc639f2c6c29ef157c1d6dfe65161c3493e2d54f4f3bf30dee7cc3388a454f |