DovaFM Documentation
WebsiteAdd Discord Bot
  • Welcome to the DovaFM Documentation!
  • DovaFM Stream
    • Embed Widgets
    • Public Pages
    • Radio & Playlist Streams
  • DovaFM API
    • Now Playing
    • Stations
      • General
      • Broadcasting
      • Song Requests
      • Service Control
      • History
      • HLS Streams
      • Listeners
      • Schedules
      • Media
      • Mount Points
      • Playlists
      • Podcasts
      • Queue
      • Remote Relays
      • SFTP Users
      • Streamers/DJs
      • Web Hooks
    • Administration
      • Custom Fields
      • Users
      • Relays
      • Roles
      • Settings
      • Stations
      • Storage Locations
      • CPU Status
    • Miscellaneous
      • Status
      • Time
  • DovaFM Discord Bot
    • Information
    • Commands
  • DovaFM Staff
    • Staff Members
Powered by GitBook
On this page
  1. DovaFM API
  2. Stations

Podcasts

PreviousPlaylistsNextQueue

Last updated 7 months ago

get

List all current podcasts.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
Responses
200
Success
application/json
Responseall of[]
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
get
GET /api/station/{station_id}/podcasts HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
[
  {
    "links": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "id": "text",
    "storage_location_id": 1,
    "source": "text",
    "playlist_id": 1,
    "playlist_auto_publish": true,
    "title": "text",
    "link": "text",
    "description": "text",
    "description_short": "text",
    "is_enabled": true,
    "branding_config": [],
    "language": "text",
    "language_name": "text",
    "author": "text",
    "email": "text",
    "has_custom_art": true,
    "art": "text",
    "art_updated_at": 1,
    "is_published": true,
    "episodes": 1,
    "categories": [
      {
        "category": "text",
        "text": "text",
        "title": "text",
        "subtitle": "text"
      }
    ]
  }
]
delete

Delete a single podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

idstringRequired

Podcast Episode ID

Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
delete
DELETE /api/station/{station_id}/podcast/{podcast_id}/episode/{id} HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
get

Gets the media for a podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

episode_idstringRequired

Podcast Episode ID

Responses
200
Success
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
get
GET /api/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/media HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*

No content

post

Sets the media for a podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

episode_idstringRequired

Podcast Episode ID

Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
post
POST /api/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/media HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
delete

Removes the media for a podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

episode_idstringRequired

Podcast Episode ID

Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
delete
DELETE /api/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/media HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
post

Sets the album art for a podcast.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
post
POST /api/station/{station_id}/podcast/{podcast_id}/art HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
get

Gets the album art for a podcast.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

Responses
200
Success
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
get
GET /api/station/{station_id}/podcast/{podcast_id}/art HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*

No content

get

Retrieve details for a single podcast.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
idstringRequired

Podcast ID

Responses
200
Success
application/json
Responseall of
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
get
GET /api/station/{station_id}/podcast/{id} HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "storage_location_id": 1,
  "source": "text",
  "playlist_id": 1,
  "playlist_auto_publish": true,
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "is_enabled": true,
  "branding_config": [],
  "language": "text",
  "language_name": "text",
  "author": "text",
  "email": "text",
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1,
  "is_published": true,
  "episodes": 1,
  "categories": [
    {
      "category": "text",
      "text": "text",
      "title": "text",
      "subtitle": "text"
    }
  ]
}
get

Gets the album art for a podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

episode_idstringRequired

Podcast Episode ID

Responses
200
Success
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
get
GET /api/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/art HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*

No content

post

Sets the album art for a podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

episode_idstringRequired

Podcast Episode ID

Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
post
POST /api/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/art HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
delete

Removes the album art for a podcast.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
delete
DELETE /api/station/{station_id}/podcast/{podcast_id}/art HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
get

Retrieve details for a single podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

idstringRequired

Podcast Episode ID

Responses
200
Success
application/json
Responseall of
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
get
GET /api/station/{station_id}/podcast/{podcast_id}/episode/{id} HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "explicit": true,
  "season_number": 1,
  "episode_number": 1,
  "created_at": 1,
  "publish_at": 1,
  "is_published": true,
  "has_media": true,
  "playlist_media_id": "text",
  "playlist_media": {
    "text": "Chet Porter - Aluko River",
    "artist": "Chet Porter",
    "title": "Aluko River",
    "album": "Moving Castle",
    "genre": "Rock",
    "isrc": "US28E1600021",
    "lyrics": "",
    "id": "9f33bbc912c19603e51be8e0987d076b",
    "art": "https://picsum.photos/1200/1200",
    "custom_fields": [
      "custom_field_value"
    ]
  },
  "media": {
    "id": "text",
    "original_name": "text",
    "length": 1,
    "length_text": "text",
    "path": "text"
  },
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1
}
delete

Removes the album art for a podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

episode_idstringRequired

Podcast Episode ID

Responses
200
Success
application/json
403
Access denied
application/json
404
Record not found
application/json
delete
DELETE /api/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/art HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
get

List all current episodes for a given podcast ID.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

Responses
200
Success
application/json
Responseall of[]
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
get
GET /api/station/{station_id}/podcast/{podcast_id}/episodes HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
[
  {
    "links": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "id": "text",
    "title": "text",
    "link": "text",
    "description": "text",
    "description_short": "text",
    "explicit": true,
    "season_number": 1,
    "episode_number": 1,
    "created_at": 1,
    "publish_at": 1,
    "is_published": true,
    "has_media": true,
    "playlist_media_id": "text",
    "playlist_media": {
      "text": "Chet Porter - Aluko River",
      "artist": "Chet Porter",
      "title": "Aluko River",
      "album": "Moving Castle",
      "genre": "Rock",
      "isrc": "US28E1600021",
      "lyrics": "",
      "id": "9f33bbc912c19603e51be8e0987d076b",
      "art": "https://picsum.photos/1200/1200",
      "custom_fields": [
        "custom_field_value"
      ]
    },
    "media": {
      "id": "text",
      "original_name": "text",
      "length": 1,
      "length_text": "text",
      "path": "text"
    },
    "has_custom_art": true,
    "art": "text",
    "art_updated_at": 1
  }
]
  • POST/station/{station_id}/podcasts
  • DELETE/station/{station_id}/podcast/{id}
  • POST/station/{station_id}/podcast/{podcast_id}/episodes
  • GET/station/{station_id}/podcasts
  • DELETE/station/{station_id}/podcast/{podcast_id}/episode/{id}
  • GET/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/media
  • POST/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/media
  • DELETE/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/media
  • PUT/station/{station_id}/podcast/{id}
  • POST/station/{station_id}/podcast/{podcast_id}/art
  • GET/station/{station_id}/podcast/{podcast_id}/art
  • PUT/station/{station_id}/podcast/{podcast_id}/episode/{id}
  • GET/station/{station_id}/podcast/{id}
  • GET/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/art
  • POST/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/art
  • DELETE/station/{station_id}/podcast/{podcast_id}/art
  • GET/station/{station_id}/podcast/{podcast_id}/episode/{id}
  • DELETE/station/{station_id}/podcast/{podcast_id}/episode/{episode_id}/art
  • GET/station/{station_id}/podcast/{podcast_id}/episodes
delete

Delete a single podcast.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
idstringRequired

Podcast ID

Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
delete
DELETE /api/station/{station_id}/podcast/{id} HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
post

Create a new podcast.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
Body
all ofOptional
Responses
200
Success
application/json
Responseall of
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
post
POST /api/station/{station_id}/podcasts HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 498

{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "storage_location_id": 1,
  "source": "text",
  "playlist_id": 1,
  "playlist_auto_publish": true,
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "is_enabled": true,
  "branding_config": [],
  "language": "text",
  "language_name": "text",
  "author": "text",
  "email": "text",
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1,
  "is_published": true,
  "episodes": 1,
  "categories": [
    {
      "category": "text",
      "text": "text",
      "title": "text",
      "subtitle": "text"
    }
  ]
}
{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "storage_location_id": 1,
  "source": "text",
  "playlist_id": 1,
  "playlist_auto_publish": true,
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "is_enabled": true,
  "branding_config": [],
  "language": "text",
  "language_name": "text",
  "author": "text",
  "email": "text",
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1,
  "is_published": true,
  "episodes": 1,
  "categories": [
    {
      "category": "text",
      "text": "text",
      "title": "text",
      "subtitle": "text"
    }
  ]
}
post

Create a new podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

Body
all ofOptional
Responses
200
Success
application/json
Responseall of
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
post
POST /api/station/{station_id}/podcast/{podcast_id}/episodes HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 716

{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "explicit": true,
  "season_number": 1,
  "episode_number": 1,
  "created_at": 1,
  "publish_at": 1,
  "is_published": true,
  "has_media": true,
  "playlist_media_id": "text",
  "playlist_media": {
    "text": "Chet Porter - Aluko River",
    "artist": "Chet Porter",
    "title": "Aluko River",
    "album": "Moving Castle",
    "genre": "Rock",
    "isrc": "US28E1600021",
    "lyrics": "",
    "id": "9f33bbc912c19603e51be8e0987d076b",
    "art": "https://picsum.photos/1200/1200",
    "custom_fields": [
      "custom_field_value"
    ]
  },
  "media": {
    "id": "text",
    "original_name": "text",
    "length": 1,
    "length_text": "text",
    "path": "text"
  },
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1
}
{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "explicit": true,
  "season_number": 1,
  "episode_number": 1,
  "created_at": 1,
  "publish_at": 1,
  "is_published": true,
  "has_media": true,
  "playlist_media_id": "text",
  "playlist_media": {
    "text": "Chet Porter - Aluko River",
    "artist": "Chet Porter",
    "title": "Aluko River",
    "album": "Moving Castle",
    "genre": "Rock",
    "isrc": "US28E1600021",
    "lyrics": "",
    "id": "9f33bbc912c19603e51be8e0987d076b",
    "art": "https://picsum.photos/1200/1200",
    "custom_fields": [
      "custom_field_value"
    ]
  },
  "media": {
    "id": "text",
    "original_name": "text",
    "length": 1,
    "length_text": "text",
    "path": "text"
  },
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1
}
put

Update details of a single podcast.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
idstringRequired

Podcast ID

Body
all ofOptional
Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
put
PUT /api/station/{station_id}/podcast/{id} HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 498

{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "storage_location_id": 1,
  "source": "text",
  "playlist_id": 1,
  "playlist_auto_publish": true,
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "is_enabled": true,
  "branding_config": [],
  "language": "text",
  "language_name": "text",
  "author": "text",
  "email": "text",
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1,
  "is_published": true,
  "episodes": 1,
  "categories": [
    {
      "category": "text",
      "text": "text",
      "title": "text",
      "subtitle": "text"
    }
  ]
}
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}
put

Update details of a single podcast episode.

Authorizations
Path parameters
station_idany ofRequired
integer · int64Optional
or
string · stringOptional
podcast_idstringRequired

Podcast ID

idstringRequired

Podcast Episode ID

Body
all ofOptional
Responses
200
Success
application/json
403
Access denied.
application/json
404
Record not found.
application/json
500
A generic exception has occurred.
application/json
put
PUT /api/station/{station_id}/podcast/{podcast_id}/episode/{id} HTTP/1.1
Host: listen.dovafm.xyz
X-API-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 716

{
  "links": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "id": "text",
  "title": "text",
  "link": "text",
  "description": "text",
  "description_short": "text",
  "explicit": true,
  "season_number": 1,
  "episode_number": 1,
  "created_at": 1,
  "publish_at": 1,
  "is_published": true,
  "has_media": true,
  "playlist_media_id": "text",
  "playlist_media": {
    "text": "Chet Porter - Aluko River",
    "artist": "Chet Porter",
    "title": "Aluko River",
    "album": "Moving Castle",
    "genre": "Rock",
    "isrc": "US28E1600021",
    "lyrics": "",
    "id": "9f33bbc912c19603e51be8e0987d076b",
    "art": "https://picsum.photos/1200/1200",
    "custom_fields": [
      "custom_field_value"
    ]
  },
  "media": {
    "id": "text",
    "original_name": "text",
    "length": 1,
    "length_text": "text",
    "path": "text"
  },
  "has_custom_art": true,
  "art": "text",
  "art_updated_at": 1
}
{
  "success": true,
  "message": "Changes saved successfully.",
  "formatted_message": "<b>Changes saved successfully.</b>"
}