A podcast series/channel owned by a creator on VoxPort
tid
Timestamp-based ID
Properties
author
string
Optional
Author/creator name (if different from DID owner)
maxLength: 256 bytescategories
array
of
string
Optional
Podcast categories (Apple Podcasts format)
maxLength: 5 itemscover
blob
Optional
Cover art image
maxSize: 2.1 MBcreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
description
string
Optional
Podcast description/summary
maxLength: 4000 bytesemail
string
Optional
Contact email for podcast
maxLength: 254 bytesexplicit
boolean
Optional
Whether content is explicit
falsehandle
string
Required
Unique handle for this series
maxLength: 64 byteslanguage
string
language
Optional
Primary language (ISO 639-1)
maxLength: 5 bytespersons
array
of
ref
live.voxport.podcast.episode#person
Optional
People associated with this series — show hosts (Podcasting 2.0 podcast:person at channel level)
maxLength: 50 itemspodcastGuid
string
Optional
Podcasting 2.0 channel-level permanent identity (podcast:guid). A UUIDv5 derived from the feed URL that survives host moves.
maxLength: 64 bytesrssFeedUrl
string
uri
Optional
Original RSS feed URL (for imported series)
rssImported
boolean
Optional
Whether this series was imported from an external RSS feed
falsetitle
string
Required
Display name of the podcast
maxLength: 256 bytesupdatedAt
string
datetime
Optional
An RFC 3339 formatted timestamp.
websiteUrl
string
uri
Optional
External website URL
maxLength: 2048 bytesView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"handle",
"title",
"createdAt"
],
"properties": {
"cover": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg"
],
"maxSize": 2097152,
"description": "Cover art image"
},
"email": {
"type": "string",
"pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$",
"maxLength": 254,
"description": "Contact email for podcast"
},
"title": {
"type": "string",
"maxLength": 256,
"description": "Display name of the podcast"
},
"author": {
"type": "string",
"maxLength": 256,
"description": "Author/creator name (if different from DID owner)"
},
"handle": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"maxLength": 64,
"description": "Unique handle for this series"
},
"persons": {
"type": "array",
"items": {
"ref": "live.voxport.podcast.episode#person",
"type": "ref"
},
"maxLength": 50,
"description": "People associated with this series — show hosts (Podcasting 2.0 podcast:person at channel level)"
},
"explicit": {
"type": "boolean",
"default": false,
"description": "Whether content is explicit"
},
"language": {
"type": "string",
"format": "language",
"maxLength": 5,
"description": "Primary language (ISO 639-1)"
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"updatedAt": {
"type": "string",
"format": "datetime"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxLength": 5,
"description": "Podcast categories (Apple Podcasts format)"
},
"rssFeedUrl": {
"type": "string",
"format": "uri",
"description": "Original RSS feed URL (for imported series)"
},
"websiteUrl": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "External website URL"
},
"description": {
"type": "string",
"maxLength": 4000,
"description": "Podcast description/summary"
},
"podcastGuid": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
"maxLength": 64,
"description": "Podcasting 2.0 channel-level permanent identity (podcast:guid). A UUIDv5 derived from the feed URL that survives host moves."
},
"rssImported": {
"type": "boolean",
"default": false,
"description": "Whether this series was imported from an external RSS feed"
}
}
},
"description": "A podcast series/channel owned by a creator on VoxPort"
}