Rust implementation of my tg-youtube-podcasts-bot
This is self-hosted service for extract audio from YouTube videos and build rss feed that can be added to Podcast app.
It allows to subscribe to YouTube channels/playlists using Telegram bot and automatically get updates to feed. Also, single item can be added without subscription.
The service uses yt-dlp to pull videos and ffmpeg for audio extraction.
Add subscription or single video to feed.
Add single item
/add https://youtube.com/watch?v={id}
Subscribe to channel
/add https://youtube.com/c/{id}
/add https://youtube.com/channel/{id}
Subscribe to playlist
/add https://youtube.com/watch?v={video_id}&list={id}
/add https://youtube.com/playlist?list={id}
Filter string can be added to subscription to get only specified updates
/add https://youtube.com/c/{id} {some title entry}
Removes specified subscription. Same syntax as fo adding subscription.
Servise expose only one endpoint for adding feed to Podcasts app.
GET /rss/{key}
- returns generated rss xml with configured limit
Add .env file following the example of .env.example
BOT_TOKEN
- token for Telegram bot to communicate with;CHAT_ID
- id of chat/group where updates will be postedUPDATE_INTERVAL
- iterval for feed update in minutes (min 10 mins are recommended);RSS_KEY
- secret key that will be added to /rss/ endpoint (string)