Skip to main content

Creates podcast feed from playlist URL

Project description

Repo at Codeberg Downloads Code Style: Black Checked against Safety DB Checked with pip-audit PyPI - Python Version PyPI - Wheel CI - Woodpecker AGLP 3 or later

Playlist2Podcast is a command line tool that takes a Youtube playlist, downloads the audio portion of the videos on that list, and creates a podcast feed from this.

Playlist2Podcast:

  1. downloads and converts the videos in one or more playlists to opus audio only files,

  2. downloads thumbnails and converts them to JPEG format, and

  3. creates a podcast feed with the downloaded videos and thumbnails.

Install and run natively

Easiest way to use Playlist2Podcast is to use pipx to install it from PyPi. Then you can simply use playlist2podcast on the command line run it.

Playlist2Podcast will ask for all necessary parameters when run for the first time and store them in config.json file in the current directory.

Docker Compose

There is a docker-image published for playlist2podcast.

You can use the below example docker compose to run playlist2podcast with a caddy frontend to publish the resulting podcast feed:

---
version: "3.5"
services:

##########################################################################
# C A D D Y - R E V E R S E   P R O X Y
##########################################################################
   caddy:
    image: lucaslorentz/caddy-docker-proxy:latest
    container_name: caddy
    ports:
      - 80:80
      - 443:443
    environment:
      - CADDY_INGRESS_NETWORKS=caddy
    networks:
      - caddy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - <path to folder where caddy can store ssl certs>:/data
      - <path to folder where caddy can write log files>:/logs
      - podcast-data:/publish:ro    # actual podcast feed data
    restart: unless-stopped

##########################################################################
# P L A Y L I S T 2 P O D C A S T
##########################################################################
  playlist2podcast:
    image: codeberg.org/pyyttools/playlist2podcast:latest
    container_name: playlist2podcast
    tty: true
    stdin_open: true
    environment:
      - DEBUG_LOG_FILE=debug.log    # Optional: If set will create a debug log file
      - UPDATE_INTERVAL=4h          # How long to wait between updates.
   volumes:
      - <path to directory containing config.json file>:/config
      - podcast-data:/publish       # podcast feed data will be saved here
    restart: unless-stopped
    networks:
      - caddy
    labels:
      caddy: <full hostname podcast>    # DNS for this needs to resolve before starting
      caddy.root: "* /publish"
      caddy.file_server:

##########################################################################
# N E T W O R K S
##########################################################################
networks:
  caddy:


##########################################################################
# V O L U M E S
##########################################################################
volumes:
  podcast-data:

Changelog

See the Changelog for any changes introduced with each version.

License

Playlist2Podcast is licences under the GNU Affero General Public License v3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

playlist2podcast-0.6.8.tar.gz (10.8 kB view hashes)

Uploaded Source

Built Distribution

playlist2podcast-0.6.8-py3-none-any.whl (21.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page