{
"id": "live.voxport.podcast.feed",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"series",
"format",
"createdAt"
],
"properties": {
"slug": {
"type": "string",
"default": "feed.xml",
"maxLength": 64,
"description": "URL slug for feed (e.g., 'feed.xml')"
},
"format": {
"type": "string",
"default": "rss2",
"maxLength": 16,
"description": "Feed format type",
"knownValues": [
"rss2",
"atom",
"json"
]
},
"series": {
"ref": "live.voxport.podcast.series#seriesRef",
"type": "ref",
"description": "Reference to parent series (uri + optional cid)"
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"updatedAt": {
"type": "string",
"format": "datetime"
},
"distribution": {
"type": "array",
"items": {
"ref": "#platformDistribution",
"type": "ref"
},
"description": "Platform distribution settings"
},
"includeEpisodes": {
"type": "integer",
"default": 50,
"minimum": 0,
"description": "Number of episodes to include (0 = all)"
},
"customRssElements": {
"type": "string",
"maxLength": 10000,
"description": "Custom XML elements to inject into RSS"
}
}
},
"description": "RSS feed configuration for a podcast series"
},
"platformDistribution": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"default": true
},
"platform": {
"type": "string",
"maxLength": 32,
"knownValues": [
"apple",
"spotify",
"youtube",
"google",
"overcast",
"pocketcasts"
]
},
"externalId": {
"type": "string",
"maxLength": 256,
"description": "Platform's ID for this series (e.g., Apple Podcasts ID)"
},
"submissionStatus": {
"type": "string",
"default": "not_submitted",
"maxLength": 32,
"knownValues": [
"not_submitted",
"pending",
"approved",
"rejected"
]
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "RSS feed configuration for a podcast series"
}