Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/acupofjose/downplay

A free, self-hostable, youtube-as-a-podcast service.
https://github.com/acupofjose/downplay

expressjs free podcast react self-hosted websockets youtube-dl

Last synced: 26 days ago
JSON representation

A free, self-hostable, youtube-as-a-podcast service.

Awesome Lists containing this project

README

        



---














Goals:

- [x] Entirely Self-Hostable
- [x] `Dockerfile` and sample `docker-compose.yml`
- [x] Easy to use REST API
- [x] User Authentication System
- [x] Simultaneous Workers for multiple downloads
- [x] Queuing System with Persistence through Server Restarts
- [x] Download Youtube Videos
- [x] Download Youtube Playlists
- [x] Download Thumbnail Artwork
- [x] Transcode Audio to `.mp3` format
- [x] Add ID3 tags to mp3 files
- [x] Play files from client
- [x] Live updating client
- [x] Settings management from client
- [ ] User Management
- [ ] Queue channels to watch and automatically download
- [ ] CRUD Operations
- [ ] Webhooks / Notifications

## Getting Started

Generate a new `JWT_SECRET` and put it into your `.env` file.

```bash
$ cp .env.example .env
$ openssl rand -hex 32
```

Using the `docker-compose.yml` in this repo, adjust the settings accordingly to your setup.

**You should change the DB passwords and make sure ports are not exposed**

Then it's as simple as:

```bash
$ docker-compose up -d
```

## API

**POST `auth/login`**

**POST `auth/register`**

**GET `entity`**

**GET `entity/:id`**

**GET `entity/stream/:id`**

**GET `entity/thumbnail/:id`**

**POST `entity/delete/:id`**

**POST `queue`**

**GET `queue`**

**GET `queue/:id`**

**POST `queue/delete/:id`**