2022-05-20 16:18:13 +02:00
|
|
|
# Podbringer
|
|
|
|
|
|
|
|
Podbringer is a web service that provides podcasts for services that don't
|
|
|
|
offer them (anymore). It provides a way to get the RSS feed for your podcast
|
|
|
|
client and it facilites the downloads of the pods (enclosures).
|
|
|
|
|
2022-08-15 21:24:05 +02:00
|
|
|
It currently only supports [Mixcloud](https://www.mixcloud.com) and
|
|
|
|
[YouTube](https://www.youtube.com).
|
2022-05-20 16:18:13 +02:00
|
|
|
Other back-ends might be added in the future.
|
|
|
|
|
|
|
|
## Building & running
|
|
|
|
|
|
|
|
Using Cargo, it is easy to build and run Podbringer, just run:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ cargo run --release
|
|
|
|
...
|
|
|
|
Compiling podbringer v0.1.0 (/path/to/podbringer)
|
|
|
|
Finished release [optimized] target(s) in 9m 26s
|
|
|
|
Running `/path/to/podbringer/target/release/podbringer`
|
|
|
|
```
|
|
|
|
|
|
|
|
(Note that Rocket listens on `127.0.0.1:8000` by default for debug builds, i.e.
|
|
|
|
builds when you don't add `--release`.)
|
|
|
|
|
|
|
|
### Configuration
|
|
|
|
|
2022-05-24 10:49:02 +02:00
|
|
|
For now, you will need to provide Rocket with configuration to tell it at which
|
2022-12-20 11:04:21 +01:00
|
|
|
public URL Podbringer is hosted. This needs to be done even if you are not using
|
|
|
|
a reverse proxy, in which case you need to provide it with the proxied URL. You
|
2022-05-24 10:49:02 +02:00
|
|
|
can also use the configuration to configure a different address and/or port.
|
2022-05-20 16:18:13 +02:00
|
|
|
Just create a `Rocket.toml` file that contains (or copy `Rocket.toml.example`):
|
|
|
|
|
|
|
|
```toml
|
|
|
|
[default]
|
|
|
|
address = "0.0.0.0"
|
|
|
|
port = 7062
|
2022-10-17 19:47:29 +02:00
|
|
|
public_url = "https://my.domain.tld/podbringer"
|
2022-05-20 16:18:13 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
This will work independent of the type of build. For more about Rocket's
|
|
|
|
configuration, see: <https://rocket.rs/v0.5-rc/guide/configuration/>.
|
|
|
|
|
2022-05-24 10:49:02 +02:00
|
|
|
## Usage
|
|
|
|
|
|
|
|
Podbringer currently has no front-end or web interface yet that can help you
|
|
|
|
use it. Until then, you just have to enter the right service-specific RSS feed
|
2022-12-20 11:04:21 +01:00
|
|
|
URL in your favorite podcast client to start using it. For example:
|
2022-05-24 10:49:02 +02:00
|
|
|
|
2022-06-05 20:56:17 +02:00
|
|
|
```text
|
2022-05-24 10:49:02 +02:00
|
|
|
https://my.domain.tld/podbringer/feed/mixcloud/myfavouriteband
|
2022-12-20 11:04:21 +01:00
|
|
|
|------------------------------| |------| |-------------|
|
|
|
|
The Podbringer public URL Service Service ID
|
2022-05-24 10:49:02 +02:00
|
|
|
```
|
|
|
|
|
2022-12-20 11:04:21 +01:00
|
|
|
So, the URL consists of the location of Podbringer, the fact that you want the feed,
|
|
|
|
the name of the service and the ID that identifies something list on that service.
|
|
|
|
|
2022-05-27 22:47:36 +02:00
|
|
|
### Feed item limit
|
|
|
|
|
|
|
|
To prevent feeds with a very large number of items, any feed that is returned
|
|
|
|
contains at most 50 items by default. If you want to have more (or less) items,
|
|
|
|
provide the limit in the URL by setting the `limit` parameter.
|
|
|
|
|
|
|
|
For example, to get up until 1000 items the URL becomes:
|
2022-12-20 11:04:21 +01:00
|
|
|
|
|
|
|
```text
|
2022-12-30 11:17:30 +01:00
|
|
|
https://my.domain.tld/podbringer/feed/mixcloud/myfavouriteband?limit=1000
|
2022-12-20 11:04:21 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
### Service: Mixcloud
|
|
|
|
|
|
|
|
For Mixcloud, a feed can be constructed of everything that a user posted.
|
|
|
|
Given the Mixcloud URL like <https://www.mixcloud.com/myfavouriteband/>, the
|
|
|
|
`myfavouriteband` part of the URL is the Mixcloud username and can be used as
|
|
|
|
the service ID.
|
|
|
|
|
|
|
|
```text
|
|
|
|
https://my.domain.tld/podbringer/feed/mixcloud/myfavouriteband
|
|
|
|
|------------------------------| |------| |-------------|
|
|
|
|
The Podbringer public URL Service Username
|
|
|
|
```
|
|
|
|
|
|
|
|
### Service: YouTube
|
|
|
|
|
|
|
|
For YouTube, a feed can either be constructed of a channel or a playlist.
|
|
|
|
Given the YouTube channel URL like <https://www.youtube.com/c/favouritechannel>,
|
|
|
|
the `favouritechannel` part of the URL is the YouTube channel ID.
|
|
|
|
Given the YouTube playlist URL
|
|
|
|
<https://www.youtube.com/playlist?list=PLsomeplaylistidentifier>, the
|
|
|
|
`PLsomeplaylistidentifier` part of the URL is the YouTube playlist ID.
|
|
|
|
Either the channel or playlist ID can be used as the service ID.
|
|
|
|
|
|
|
|
```text
|
|
|
|
https://my.domain.tld/podbringer/feed/youtube/favouritechannel
|
|
|
|
|------------------------------| |-----| |--------------|
|
|
|
|
The Podbringer public URL Service Channel ID
|
|
|
|
|
|
|
|
https://my.domain.tld/podbringer/feed/youtube/PLsomeplaylistidentifier
|
|
|
|
|------------------------------| |-----| |----------------------|
|
|
|
|
The Podbringer public URL Service Playlist ID
|
|
|
|
```
|
2022-05-27 22:47:36 +02:00
|
|
|
|
2022-05-20 16:18:13 +02:00
|
|
|
## License
|
|
|
|
|
|
|
|
Podbringer is licensed under the MIT license (see the `LICENSE` file or
|
|
|
|
<http://opensource.org/licenses/MIT>).
|