Skip to main content

Creates podcast feed from playlist URL

Project description

Repo at Codeberg Downloads Code Style: Black 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/playlist2podcasts:latest
    container_name: playlist2podcast
    tty: true
    stdin_open: true
    environment:
      - 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-1.1.1.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

playlist2podcast-1.1.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file playlist2podcast-1.1.1.tar.gz.

File metadata

  • Download URL: playlist2podcast-1.1.1.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for playlist2podcast-1.1.1.tar.gz
Algorithm Hash digest
SHA256 50fbe9da702dde9fcce351a398bb18298ef43725bb88c32e88e6d0d2465e0df4
MD5 657de6e1e8664d5f8aad6acd7c517552
BLAKE2b-256 61b9a98c7405795586ee60099652621fd8b984b2ec5139896fe3115604eacca7

See more details on using hashes here.

File details

Details for the file playlist2podcast-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for playlist2podcast-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7da1fb192ae9168289ec52dc9496775ef68d77f1d32616f668f535b06797ca94
MD5 6c7b528741f8baefc689f90e0e192b07
BLAKE2b-256 0885a02472c95093c86dde356c9108b24e2ef50ee4dad5c7c452d441b6670394

See more details on using hashes here.

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