LSBC/README.md

57 lines
2.4 KiB
Markdown
Raw Normal View History

2024-08-31 23:16:39 +02:00
# LSBC
2023-05-13 02:08:57 +02:00
> 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.
2023-05-13 02:08:57 +02:00
Features include:
- Lightweight, bare minimum pages;
- Simple backoffice;
- Separate users manage their own podcasts;
2024-09-01 16:37:32 +02:00
- 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](https://github.com/yt-dlp/yt-dlp) (download) and [FFProbe](https://ffmpeg.org/ffprobe.html) (metadata);
2024-09-01 16:37:32 +02:00
Podcasts follow mostly open standards but the “target” client is the fantastic [AntennaPod](https://antennapod.org/), and gPodder was used in development.
2023-05-13 02:08:57 +02:00
2024-08-31 23:16:39 +02:00
## Install
2023-05-13 02:08:57 +02:00
This project requires:
2024-08-31 23:16:39 +02:00
- PHP 8.3
2023-05-13 02:08:57 +02:00
- PostgreSQL 15 and its PHP driver
For production:
1. Clone the repository.
2. Setup your web server to use PHP-FPM (root is `./public`).
2024-09-01 16:37:32 +02:00
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.
2023-05-13 02:08:57 +02:00
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](https://castopod.com/). LSBC is really not meant to do much.
### License
GPLv3.