yttopodcast/README.md

44 lines
1.3 KiB
Markdown
Raw Normal View History

# yttopodcast
Tools to convert YouTube video feeds to standard Podcast RSS feeds. A workaround is done, bouncer,
to serve files from youtube directly, rather than storing the audio files and serving them
independantly.
A web server is required to serve the RSS feed as a file, and an HTTP boucner server is used to
fetch valid links from yt. Since getting the content URLs is quite slow, the implemented bouncer
has a basic cache.
# Usage
The tools can be used standalone, imported and invoked in go code, or run with the helpers as a collection.
## yttopodcast
Generates single or multiple feeds on an interval, serves the feed files (RSS/XML), and launches a yt
link bouncer. This can be used as a complete service.
```sh
cd cmd/yttopodcast
go build .
./yttopodcast -id CHANNEL_ID
```
## genfeed
Generate a feed given a channel id
```sh
cd cmd/genfeed
go build .
./genfeed -id CHANNEL_ID > feed.xml
```
`feed.xml` file can be used as an RSS feed.
## ytbouncer
The bouncer uses standard go http and can be embedded. To run it standalone
```sh
cd cmd/ytbouncer
go build .
./ytbouncer
```
starts a server.
**Note:** the url resolution is quite slow and heavy computaionally, due to yt-dlp backend. It can be used
as a DoS without the use of rate limiting or other measures.