Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

bobrippling/podsync

Repository files navigation

podsync

A HTTP server for syncing podcast app state, mirroring the gpodder API. Designed for use with AntennaPod's sync service.

Setup

Creating Users

Add a user with scripts/add-user.sh:

">$ ./scripts/add-user.sh yourname
yourname's pass:

This will add a user into the database, assumed to be pod.sql.

Endpoints

podsync doesn't cover the full gpodder API, just enough to get AntennaPod to work:

  • auth:
    • POST api/2/auth/{username}/login.json
    • POST api/2/auth/{username}/logout.json
  • devices:
    • GET api/2/devices/{username}.json
    • POST api/2/devices/{username}/{device}.json
  • subscriptions:
    • GET api/2/subscriptions/{username}/{device}.json
    • POST api/2/subscriptions/{username}/{device}.json
  • episodes:
    • GET api/2/episodes/{username}.json
    • POST api/2/episodes/{username}.json

Logging

podsync uses the RUST_LOG environment variable for logging. To generate logs similar to a webserver:

export RUST_LOG=podsync=info

# or for debugging:
export RUST_LOG=podsync=trace

# for warp/endpoint output:
export RUST_LOG=podsync=info,warp=info

See the log crate for more details

Building

Modes

podsync has two backends: SQL database or plain text files. The former being more scalable, the latter being easier to inspect and manipulate with Unix tools.

By default it builds in file mode, to build in sql mode, build with cargo build --features backend-sql.

SQLx offline build

podsync uses sqlx in offline mode for builds (see build.rs for more).

To update the schema:

export DATABASE_URL=sqlite://pod.sql
cargo install sqlx-cli
cargo sqlx prepare -- --tests --features backend-sql
git commit -m 'Update sqlx snapshot' sqlx-data.json

Docker

An unofficial Docker image exists, maintained by OpenByteDev

About

A minimal podcast sync server, using the same API as GPodder, compatible with AntennaPod. See also https://github.com/kd2org/opodsync

Topics

Resources

Readme

Stars

Watchers

Forks

Packages

Contributors