LSBC/README.md

2.4 KiB

LSBC

Lightweight Symfony Broadcast Client, probably.

A small platform to create podcasts and episodes, host the audio files and share the RSS feed, with external sources download abilities. The end goal is to have a minimalist platform to post stuff from the Web and mostly to enable posting from bots though the API, for shits and giggles.

Features include:

  • Lightweight, bare minimum pages;
  • Simple backoffice;
  • Separate users manage their own podcasts;
  • A download service to add episodes from an API or the command-line by providing a URL to download and a podcast slug; this service forwards everything to yt-dlp (download) and FFProbe (metadata);

Podcasts follow mostly open standards but the “target” client is the fantastic AntennaPod, and gPodder was used in development.

Install

This project requires:

  • PHP 8.3
  • PostgreSQL 15 and its PHP driver

For production:

  1. Clone the repository.
  2. Setup your web server to use PHP-FPM (root is ./public).
  3. Create the production config file: composer dump-env prod. Set a proper app secret.
  4. Create a database and its owner, then set appropriate database credentials in the config file.
  5. Install dependencies: composer install --no-dev.
  6. Apply database migrations: php bin/console doctrine:migrations:migrate

Usage

Once installed visit the website and everything should be straightforward. Use php bin/console list from the command-line to check available commands.

Youtube and cookies

As the Youtube download service relies on yt-dlp to download stuff and you might want to run LSBC on a server, Youtube will probably ask you to login, and providing a username and a password is not enough for them. yt-dlp will fail with an error message.

What you need is a cookies export file. To produce one, run on your own computer yt-dlp --cookies-from-browser firefox --cookies cookies.txt to export your cookies to a text file. You can redact cookies that aren't related to Youtube, i.e. all lines not starting with ".youtube.com" (except the comments at the top, they are mandatory for some reason). Push that to your server and set the YTDLP_COOKIES_FILE env var accordingly.

About

Is it for me?

Probably not. If you need a self-hosted podcasting platform, look at some great projects such as Castopod. LSBC is really not meant to do much.

License

GPLv3.