Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vovastelmashchuk/selfpod
The app allows podcast owners to publish their podcasts on YouTube automatically by power of open source; free and self-hosted.
https://github.com/vovastelmashchuk/selfpod
podcast podcasts self-hosted youtube
Last synced: 3 months ago
JSON representation
The app allows podcast owners to publish their podcasts on YouTube automatically by power of open source; free and self-hosted.
- Host: GitHub
- URL: https://github.com/vovastelmashchuk/selfpod
- Owner: VovaStelmashchuk
- Created: 2023-12-25T12:45:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-05T12:51:38.000Z (8 months ago)
- Last Synced: 2024-05-05T13:48:11.034Z (8 months ago)
- Topics: podcast, podcasts, self-hosted, youtube
- Language: Go
- Homepage:
- Size: 10.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
Awesome Lists containing this project
README
## Moved to Archive
[AndroidStory](https://androidstory.dev/) moved to new solution which provide admin pannel for podcast hosts and some automation around podcast hosting.
New solution also open source [YourPod](https://github.com/VovaStelmashchuk/yourpod)## Selfpod
The system for podcast owners to duplicate their podcast to youtube automatically by power of open source; free and
self-hosted. You control your podcast, not the other way around.The application is a simple go app which receive the webhook from a cast and download the audio and cover files.
Then the app create a video from the audio and cover files by ffmpeg, generate the youtube based on description from the
rss feed. Then the app upload the video to youtube.## The project goal
The one reason to create automation pipeline for Android Story podcast workflow. The vector of the project will be
changed in case of Android story podcast workflow changes. **Keep in mind, the project is not a product. I recommend to
research the project and get the idea which can be applied into your project.**### Run app by docker compose
```bash
version: '3'services:
app:
container_name: selfpod
image: vovochkastelmashchuk/selfpod:0.2.0
ports:
- "6000:5000"
environment:
- A_CAST_HOOK_TOKEN=
- APP_PORT=
- GOOGLE_REDIRECT_URL=
- A_CAST_SHOW_ID=
- YOUTUBE_CHANNEL_ID=
- DISCORD_WEBHOOK_URL=
- DISCORD_BOT_NAME=
volumes:
- ./for_docker_mount/:/application/tmp_files/
- ./files/:/application/files/
```The google redirect url will be `/auth/google/callback`
Create file in the root `client_secret.json` with the following content:
```json
{
"web": {
"client_id": "",
"project_id": "",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "",
"redirect_uris": [
"/auth/google/callback"
]
}
}
```## Using
The app support only one podcast per one instance. You can run multiple instances for multiple podcasts.
Also its means the app support only one rss feed, one youtube account, etc per one instance.Currently, the app using by [Android Story podcast](https://www.youtube.com/channel/UC6-NFk4uOGsKvyisL1QC3rw). The app
run on Raspberry Pi 4 with 2GB RAM at my home. And we successfully downgrade our Acast plan to free.## TODO
- Some UI improvements
- Write some tool for generating the public and private podcasts.
- Auto podcast editing tool.## Build docker image
Check the building process in ci files.
### API
Look to api in file api.http