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 ee7080d63c Also test Nextcloud 23 in ci tests 2021-12-09 21:46:41 +01:00
.github/workflows Also test Nextcloud 23 in ci tests 2021-12-09 21:46:41 +01:00
appinfo Add support of NC23 2021-12-09 21:46:41 +01:00
lib do not add subscriptions that have no url (i.e. antennapod local folder subscriptions) 2021-12-09 20:55:05 +01:00
tests do not add subscriptions that have no url (i.e. antennapod local folder subscriptions) 2021-12-09 20:55:05 +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 do not add subscriptions that have no url (i.e. antennapod local folder subscriptions) 2021-12-09 20:55:05 +01: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
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/
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",
  }
]