Get episode timestamps
Returns timing data for the episode's generated audio, derived from the episode timeline. Useful for synced transcripts, karaoke-style word highlighting, speaker-attributed transcripts, or subtitle tracks on a video player.
Available as soon as audio has been generated — the episode does not need to be published.
Three output formats are supported via the format query param:
json(default): structured timings, shape depends ongranularitysrt: SubRip subtitle file (application/x-subrip)vtt: WebVTT subtitle file (text/vtt), with<v Speaker>voice tags when speaker attribution is available
Speaker attribution
Because Jellypod generates audio with specified hosts, speaker attribution is deterministic — unlike diarization APIs there is no confidence score. Each audio item on the timeline corresponds to exactly one host (one contiguous utterance).
JSON responses include a top-level speakers array; individual
words or segments reference speakers by integer index. Each entry
exposes the host's host_id (matching GET /hosts/{host_id}) and
display name. If an audio item had no speaker metadata the
reference will be null.
Returns 404 with not_found if the episode has no timestamps
yet (audio has not been generated).
Authorization
BearerAuth Jellypod API key. Create and manage keys from the Jellypod dashboard under Settings → API Keys.
In: header
Path Parameters
The episode's unique identifier.
uuidQuery Parameters
Output format. Defaults to json.
"json""json" | "srt" | "vtt"Granularity of timings in the JSON response. Ignored when
format is srt or vtt. Defaults to word.
word: flat list of words with timings and a speaker index.segment: utterances grouped by speaker, with nested words. Closest toutterances-style output from speech-to-text APIs.
"word""word" | "segment"Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://api.jellypod.com/v1/episodes/497f6eca-6276-4993-bfeb-53cbbbba6f08/timestamps"{
"data": {
"episode_id": "a7b62598-1927-4181-99d5-5d746c0bbcfe",
"granularity": "word",
"speakers": [
{
"host_id": "eb4e20fc-2b4a-4d0c-811f-48abcf12b89b",
"name": "string"
}
],
"words": [
{
"word": "string",
"start": 0,
"end": 0,
"speaker": 0
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}{
"error": {
"code": "bad_request",
"message": "string",
"request_id": "string",
"details": [
{
"field": "string",
"message": "string"
}
]
}
}Was this page helpful?