nextcloud-gpodder/README.md

2.5 KiB

nextcloud-gpodder

Nextcloud app that replicates basic gpodder.net api

This app serves as synchronization endpoint for AntennaPod: https://github.com/AntennaPod/AntennaPod/pull/5243/
This feature will be available in AntennaPod as of version 2.5.0, which will be released towards the end of 2021.

API

subscription

  • get subscription changes: GET /index.php/apps/gpoddersync/subscriptions
    • (optional) GET parameter since (UNIX time)
  • upload subscription changes : POST /index.php/apps/gpoddersync/subscription_change/create
    • returns nothing

The API replicates this: https://gpoddernet.readthedocs.io/en/latest/api/reference/subscriptions.html

episode action

  • get episode actions: GET /index.php/apps/gpoddersync/episode_action
    • (optional) GET parameter since (UNIX time)
    • fields: podcast, episode, guid, action, timestamp, position, started, total
  • create episode actions: POST /index.php/apps/gpoddersync/episode_action/create
    • fields: podcast, episode, guid, action, timestamp, position, started, total
    • position, started and total are optional, default value is -1
    • returns JSON with current timestamp

The API replicates this: https://gpoddernet.readthedocs.io/en/latest/api/reference/events.html

we also process the property guid

Example requests:

GET /index.php/apps/gpoddersync/episode_action?since=1633240761

{
    "actions": [
      {
       "podcast": "http://example.com/feed.rss",
       "episode": "http://example.com/files/s01e20.mp3",
       "guid": "s01e20-example-org",
       "action": "PLAY",
       "timestamp": "2009-12-12T09:00:00",
       "started": 15,
       "position": 120,
       "total":  500
      },
      {
       "podcast": "http://example.com/feed.rss",
       "episode": "http://example.com/files/s01e20.mp3",
       "guid": "s01e20-example-org",
       "action": "DOWNLOAD",
       "timestamp": "2009-12-12T09:00:00",
       "started": -1,
       "position": -1,
       "total":  -1
      },
    ],
    "timestamp": 12345
}
POST /index.php/apps/gpoddersync/episode_action/create

[
  {
   "podcast": "http://example.com/feed.rss",
   "episode": "http://example.com/files/s01e20.mp3",
   "guid": "s01e20-example-org",
   "action": "play",
   "timestamp": "2009-12-12T09:00:00",
   "started": 15,
   "position": 120,
   "total":  500
  },
  {
   "podcast": "http://example.org/podcast.php",
   "episode": "http://ftp.example.org/foo.ogg",
   "guid": "foo-bar-123",
   "action": "DOWNLOAD",
   "timestamp": "2009-12-12T09:05:21",
  }
]