Applicazione Nextcloud che replica l'API di base di gpodder.net per sincronizzare le applicazioni dei podcast (podcatcher) come AntennaPod. https://castopod.it
Go to file
Jonathan Flueren c6ee19a929 Ensure uppercase action in EpisodeAction upload
Background: action is lowercase in gpodder api description - gpoddersync always worked with uppercase action.
2021-10-06 19:40:52 +02:00
.github/workflows also test nextcloud v21 2021-10-06 14:06:45 +02:00
appinfo add new timestamp database field. add migration step to convert timestamps to unix epoch 2021-10-06 14:06:45 +02:00
lib Ensure uppercase action in EpisodeAction upload 2021-10-06 19:40:52 +02:00
tests Adjust expected DateTime format to gpodder - UTC ISO 8601 2021-10-06 19:40:52 +02: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 2.0.0 2021-10-03 09:42:00 +02:00
Makefile ignore releases directory from tarball 2021-08-14 20:15:31 +02:00
README.md Update API documentation - add examples & differences between gpodder 2021-10-06 19:40:52 +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

README.md

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/

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)
  • upload episode actions: POST /index.php/apps/gpoddersync/episode_action/create
    • returns JSON with current timestamp

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

we also process the property uuid

fields: podcast, episode, guid, action, position, started, total, timestamp

Example requests:

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

{
    "actions": [
      {
       "id": 54, 
       "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
      }
    ],
    "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",
   "started": -1,
   "position": -1,
   "total":  -1
  }
]