Very spartan Web and REST interface for downloading podcasts onto a server. Inspired and heavily derived from youtube-dl-server. bottle
+ podcast-dl
.
This example uses the docker run command to create the container to run the app. Here we also use host networking for simplicity. Also note the -v
argument. This directory will be used to output the resulting podcasts
docker run -d --net="host" --name podcast-dl -v /downloads:/path-to-download-folder garrettdowd/podcast-dl-server
This is an example service definition that could be put in docker-compose.yml
which can be downloaded here.
---
version: "2"
services:
podcast-dl:
container_name: podcast-dl
image: garrettdowd/podcast-dl-server
volumes:
- /downloads:/path-to-download-folder
ports:
- 8567:8567
restart: unless-stopped
Downloads can be triggered by supplying the {{url}}
of the requested podcast through the Web UI or through the REST interface via curl, etc.
Just navigate to http://{{host}}:8080/podcast-dl
and enter the requested {{url}}
.
curl -X POST --data-urlencode "url={{url}}" http://{{host}}:8080/podccast-dl/q
fetch(`http://${host}:8080/podcast-dl/q`, {
method: "POST",
body: new URLSearchParams({
url: url
}),
});
The server uses bottle
for the web framework and podcast-dl
to handle the downloading.
This docker image is based on python:alpine
and consequently alpine:3.8
.