Turn YouTube or Vimeo channels, users, or playlists into podcast feeds
MIT License
Podsync - is a simple, free service that lets you listen to any YouTube / Vimeo channels, playlists or user videos in podcast format.
Podcast applications have a rich functionality for content delivery - automatic download of new episodes, remembering last played position, sync between devices and offline listening. This functionality is not available on YouTube and Vimeo. So the aim of Podsync is to make your life easier and enable you to view/listen to content on any device in podcast client.
If you're running the CLI as binary (e.g. not via Docker), you need to make sure that dependencies are available on
your system. Currently, Podsync depends on youtube-dl
, ffmpeg
, and go
.
On Mac you can install those with brew
:
brew install youtube-dl ffmpeg go
Nightly builds uploaded every midnight from the main
branch and available for testing:
$ docker run -it --rm ghcr.io/mxpv/podsync:nightly
In order to query YouTube or Vimeo API you have to obtain an API token first.
You need to create a configuration file (for instance config.toml
) and specify the list of feeds that you're going to host.
See config.toml.example for all possible configuration keys available in Podsync.
Minimal configuration would look like this:
[server]
port = 8080
[storage]
[storage.local]
data_dir = "/data/podsync/"
[tokens]
youtube = "PASTE YOUR API KEY HERE"
[feeds]
[feeds.ID1]
url = "https://www.youtube.com/channel/UCxC5Ls6DwqV0e-CYcAKkExQ"
If you want to hide Podsync behind reverse proxy like nginx, you can use hostname
field:
[server]
port = 8080
hostname = "https://my.test.host:4443"
[feeds]
[feeds.ID1]
...
Server will be accessible from http://localhost:8080
, but episode links will point to https://my.test.host:4443/ID1/...
Make sure you have created the file config.toml
. Also note the location of the data_dir
. Depending on the operating system, you may have to choose a different location since /app/data
might be not writable.
$ git clone https://github.com/mxpv/podsync
$ cd podsync
$ make
$ ./bin/podsync --config config.toml
Use the editor Visual Studio Code and install the official Go extension. Afterwards you can execute "Run & Debug" βΆοΈ "Debug Podsync" to debug the application. The required configuration is already prepared (see .vscode/launch.json
).
$ docker pull mxpv/podsync:latest
$ docker run \
-p 8080:8080 \
-v $(pwd)/data:/app/data/ \
-v $(pwd)/config.toml:/app/config.toml \
mxpv/podsync:latest
$ docker-compose up
Just push a git tag. CI will do the rest.