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.
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.2.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71205a715a8c8ff4bcd2a9116dd9133bf442a1622b230d233aa0d5ae08f2cb6b |
|
MD5 | 920a4214f4fc2d130777d291b57833b2 |
|
BLAKE2b-256 | 787fa1055cd39eb2ba03c3cc9f601dfe9589aca8ca2e911f713c8c8c262d655b |