nextcloud app that replicates basic gpodder.net api
Go to file
Matthias Gutjahr cba5bd97c3 Fix typo
2021-11-03 13:51:26 +01:00
.github/workflows run github actions for any branch with prefix 'ci-' 2021-10-13 22:36:30 +02:00
appinfo release 3.1.0 2021-10-18 12:22:39 +02:00
lib Remove redundant docblock 2021-11-03 13:51:26 +01:00
tests Fix typo 2021-11-03 13:51:26 +01:00
vendor parse EpisodeAction message from AntennaPod 2021-06-27 13:24:17 +02:00
.gitignore parse EpisodeAction message from AntennaPod 2021-06-27 13:24:17 +02:00
CHANGELOG.md release 3.1.0 2021-10-18 12:22:39 +02:00
composer.json add minimal composer.json 2021-10-06 14:06:45 +02:00
composer.lock parse EpisodeAction message from AntennaPod 2021-06-27 13:24:17 +02:00
Makefile ignore releases directory from tarball 2021-08-14 20:15:31 +02:00
README.md Add info about availability in AntennaPod 2021-10-14 20:56:07 +02:00

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",
  }
]