Skip to content

Media & Live TV API Reference

Base URL: /api/v1Last Updated: 2026-02-04


Live TV (/api/v1/live)

GET /api/v1/live/channels

Get live TV channels with optional filters.

  • Auth: Optional
  • Query Params: culture_id, category

GET /api/v1/live/{channel_id}

Get channel details with today's schedule.

  • Auth: Optional

GET /api/v1/live/{channel_id}/epg

Get EPG (Electronic Program Guide) for channel.

  • Auth: None
  • Query Params: date (YYYY-MM-DD)

GET /api/v1/live/{channel_id}/stream

Get live stream URL with subscription check.

  • Auth: Required
  • Response: Stream URL, type, DRM info, current/next program

Live Quota (/api/v1/live/quota)

GET /api/v1/live/quota/my-usage

Get current user's live feature usage statistics.

  • Auth: Required

GET /api/v1/live/quota/check/{feature_type}

Check if user can start new live feature session.

  • Auth: Required
  • Path Params: feature_type (FeatureType enum)

GET /api/v1/live/quota/session-history

Get user's recent live feature usage sessions.

  • Auth: Required
  • Query Params: limit (max 100), offset

Live Dubbing

GET /api/v1/live/{channel_id}/dubbing/availability

Check if live dubbing is available for channel.

  • Auth: Required
  • Response: Available languages, voices

GET /api/v1/live/dubbing/voices

Get list of available voices for dubbing.

  • Auth: Required

PUT /api/v1/admin/live/{channel_id}/dubbing/config

Update dubbing configuration for channel. Admin only.

  • Auth: Required (Admin)

GET /api/v1/admin/live/dubbing/stats

Get dubbing session statistics. Admin only.

  • Auth: Required (Admin)

Live Catch-Up

GET /api/v1/live/{channel_id}/catchup

Generate or retrieve AI catch-up summary (Beta 500 users only).

  • Auth: Required

GET /api/v1/live/{channel_id}/catchup/available

Check if catch-up summary is available for a channel.

  • Auth: Required

Live Highlights

GET /api/v1/live/{channel_id}/highlights

Get recent highlights for a live channel.

  • Auth: Required
  • Rate Limit: 60/min

GET /api/v1/live/{channel_id}/highlights/status

Check if highlight detection is active for a channel.

  • Auth: Required
  • Rate Limit: 60/min

POST /api/v1/live/{channel_id}/highlights/start

Start highlight detection for a channel. Admin only.

  • Auth: Required (Admin)
  • Rate Limit: 10/min

POST /api/v1/live/{channel_id}/highlights/stop

Stop highlight detection for a channel. Admin only.

  • Auth: Required (Admin)
  • Rate Limit: 10/min

GET /api/v1/admin/highlights/active

Get all channels with active highlight detection. Admin only.

  • Auth: Required (Admin)
  • Rate Limit: 30/min

Radio (/api/v1/radio)

GET /api/v1/radio/stations

Get radio stations with optional filters.

  • Auth: Optional
  • Query Params: culture_id, genre

GET /api/v1/radio/{station_id}

Get radio station details (name, logo, genre, current show/song).

  • Auth: Optional

GET /api/v1/radio/{station_id}/stream

Get radio stream URL with optional validation.

  • Auth: None
  • Query Params: validate (bool)

Audiobooks (/api/v1/audiobooks)

GET /api/v1/audiobooks

Get featured/trending audiobooks with pagination.

  • Auth: Optional
  • Query Params: page, page_size

GET /api/v1/audiobooks/{audiobook_id}

Get single audiobook metadata.

  • Auth: Optional

GET /api/v1/audiobooks/{audiobook_id}/chapters

Get audiobook with chapters for player.

  • Auth: Optional

POST /api/v1/audiobooks/{audiobook_id}/stream

Get audiobook stream URL (admin-only).

  • Auth: Required (Admin)

Recordings (/api/v1/recordings)

POST /api/v1/recordings/start

Start manual recording of live channel. Premium only.

  • Auth: Required (Premium)
  • Request Body: StartRecordingRequest

POST /api/v1/recordings/{session_id}/stop

Stop active recording session.

  • Auth: Required (Premium)

DELETE /api/v1/recordings/{recording_id}

Delete recording and release quota.

  • Auth: Required

GET /api/v1/recordings

List user's recordings with pagination.

  • Auth: Required
  • Query Params: page, page_size

GET /api/v1/recordings/active/sessions

Get user's active recording sessions.

  • Auth: Required

GET /api/v1/recordings/quota/status

Get user's recording quota status.

  • Auth: Required

GET /api/v1/recordings/{recording_id}

Get recording details (increments view count).

  • Auth: Required

Recording Schedules (/api/v1/recordings)

POST /api/v1/recordings/schedule

Schedule recording from EPG entry. Premium only.

  • Auth: Required (Premium)
  • Request Body: ScheduleRecordingRequest

DELETE /api/v1/recordings/schedule/{schedule_id}

Cancel a scheduled recording.

  • Auth: Required

GET /api/v1/recordings/schedules

List user's scheduled recordings with optional status filter.

  • Auth: Required
  • Query Params: status

GET /api/v1/recordings/schedule/conflicts

Check for scheduling conflicts.

  • Auth: Required
  • Query Params: start_time, end_time, channel_id

Series Recording Rules (/api/v1/recordings)

POST /api/v1/recordings/rules

Create new series recording rule. Premium only.

  • Auth: Required (Premium)
  • Request Body: CreateSeriesRuleRequest

GET /api/v1/recordings/rules

List user's series recording rules.

  • Auth: Required

PUT /api/v1/recordings/rules/{rule_id}

Update a series recording rule. Premium only.

  • Auth: Required (Premium)
  • Request Body: UpdateSeriesRuleRequest

DELETE /api/v1/recordings/rules/{rule_id}

Delete series rule and cancel pending schedules.

  • Auth: Required

Media Proxy (/api/proxy)

GET /api/proxy/media/{encoded_url}

Proxy GCS media files for authenticated access.

  • Auth: None
  • Path Params: encoded_url (base64)

GET /api/proxy/transcode/{content_id}

Stream video with real-time audio transcoding (web only).

  • Auth: None
  • Query Params: start (float seconds)

GET /api/proxy/transcode/{content_id}/info

Get transcoding requirements for content.

  • Auth: None

TTS Proxy (/api/v1/tts)

POST /api/v1/tts/synthesize

Synthesize speech using ElevenLabs API (backend-only credentials).

  • Auth: Required (OAuth)

GET /api/v1/tts/voices

Get list of available ElevenLabs voices.

  • Auth: Required (OAuth)

GET /api/v1/tts/health

Health check for TTS service.

  • Auth: None

Analytics Proxy (/api/v1/analytics)

POST /api/v1/analytics/track

Track single analytics event through backend proxy.

  • Auth: Required (OAuth)

POST /api/v1/analytics/batch

Track multiple analytics events in batch (max 100).

  • Auth: Required (OAuth)

GET /api/v1/analytics/health

Health check for analytics service.

  • Auth: None

Wake Word Proxy (/api/v1/wake-word)

POST /api/v1/wake-word/detect

Detect wake word in audio stream using Picovoice API.

  • Auth: Required (OAuth)

GET /api/v1/wake-word/models

Get list of available wake word detection models.

  • Auth: Required (OAuth)

GET /api/v1/wake-word/health

Health check for wake word service.

  • Auth: None

Document Status: Complete Last Updated: 2026-02-04 Maintained by: Backend Team

Released under the MIT License.