Blubrry API Media API
Upload and manage media files hosted on Blubrry.
Upload and manage media files hosted on Blubrry.
openapi: 3.1.0
info:
title: Blubrry Podcast Hosting & Statistics Episode Media API
version: '2'
description: 'REST API for podcast publishing, media hosting, episode management, and
podcast download statistics on Blubrry. Authentication is OAuth 2.0
Bearer; obtain a client_id / secret from Blubrry and request an access
token at https://api.blubrry.com/oauth2/token.
Source spec: https://blubrry.com/developer/api/podcaster.yaml
'
contact:
name: Blubrry Developer
url: https://blubrry.com/developer/api/
servers:
- url: https://api.blubrry.com/2
description: Production
security:
- OAuth2: []
tags:
- name: Media
description: Upload and manage media files hosted on Blubrry.
paths:
/media/index.{format}:
get:
tags:
- Media
summary: List shows
description: Returns the list of shows the authorized account has access to.
operationId: listShows
parameters:
- $ref: '#/components/parameters/Format'
responses:
'200':
description: Shows returned.
'401':
$ref: '#/components/responses/Unauthorized'
/media/{keyword}/index.{format}:
get:
tags:
- Media
summary: List media for a show
description: Returns unpublished and recently published media files for the show.
operationId: listShowMedia
parameters:
- $ref: '#/components/parameters/Keyword'
- $ref: '#/components/parameters/Format'
responses:
'200':
description: Media list returned.
'401':
$ref: '#/components/responses/Unauthorized'
/media/{keyword}/{filename}:
get:
tags:
- Media
summary: Get a media file's metadata
operationId: getMedia
parameters:
- $ref: '#/components/parameters/Keyword'
- $ref: '#/components/parameters/Filename'
responses:
'200':
description: Media metadata returned.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: Media not found.
put:
tags:
- Media
summary: Upload (or replace) a media file
operationId: uploadMedia
parameters:
- $ref: '#/components/parameters/Keyword'
- $ref: '#/components/parameters/Filename'
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: Media uploaded.
'401':
$ref: '#/components/responses/Unauthorized'
delete:
tags:
- Media
summary: Delete a media file
operationId: deleteMedia
parameters:
- $ref: '#/components/parameters/Keyword'
- $ref: '#/components/parameters/Filename'
responses:
'204':
description: Media deleted.
'401':
$ref: '#/components/responses/Unauthorized'
/media/{keyword}/migrate_add.json:
post:
tags:
- Media
summary: Queue a media file for migration into Blubrry hosting
operationId: migrateAddMedia
parameters:
- $ref: '#/components/parameters/Keyword'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- source_url
properties:
source_url:
type: string
format: uri
responses:
'200':
description: Migration queued.
'401':
$ref: '#/components/responses/Unauthorized'
/media/{keyword}/migrate_remove.json:
post:
tags:
- Media
summary: Remove a migration request
operationId: migrateRemoveMedia
parameters:
- $ref: '#/components/parameters/Keyword'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- source_url
properties:
source_url:
type: string
format: uri
responses:
'200':
description: Migration request removed.
'401':
$ref: '#/components/responses/Unauthorized'
/media/{keyword}/migrate_status.json:
get:
tags:
- Media
summary: Get migration status
operationId: getMigrationStatus
parameters:
- $ref: '#/components/parameters/Keyword'
responses:
'200':
description: Migration status returned.
'401':
$ref: '#/components/responses/Unauthorized'
components:
parameters:
Keyword:
name: keyword
in: path
required: true
description: Program keyword that identifies the show.
schema:
type: string
Format:
name: format
in: path
required: true
description: Response serialization format.
schema:
type: string
enum:
- json
- xml
Filename:
name: filename
in: path
required: true
description: Media filename including extension.
schema:
type: string
responses:
Unauthorized:
description: Missing or invalid access token.
securitySchemes:
OAuth2:
type: oauth2
description: 'OAuth 2.0 Bearer token. Contact Blubrry to receive a client_id and
secret. Tokens expire after one hour; refresh tokens do not expire.
'
flows:
authorizationCode:
authorizationUrl: https://api.blubrry.com/oauth2/authorize
tokenUrl: https://api.blubrry.com/oauth2/token
refreshUrl: https://api.blubrry.com/oauth2/token
scopes: {}