Skip to main content
The Videos API gives you access to Hitorino’s library of on-demand content — recordings of past streams, uploaded videos, and highlight clips published by creators. You can use these endpoints to build video galleries, embed content in external sites, or sync Hitorino video metadata into your own database. All responses follow the standard Hitorino JSON format described in the API Overview.

List Videos

Returns a paginated list of publicly available on-demand videos. Videos are returned in reverse-chronological order (newest first) by default.
GET /videos

Query Parameters

creator_id
string
Return only videos published by the creator with this user ID. Useful for building a creator-specific video gallery.
category
string
Filter videos by category slug (e.g., gaming, music, coding). Must match a valid Hitorino category.
limit
integer
Maximum number of videos to return per page. Defaults to 20. Maximum is 100.
cursor
string
Pagination cursor from the previous response’s pagination.next_cursor. Omit to fetch the first page.

Request Examples

curl "https://api.hitorino.tv/v1/videos?category=coding&limit=5" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "data": [
    {
      "id": "vid_01HVID1234",
      "title": "Building a REST API in Go — Full Session",
      "description": "Three-hour deep dive into building a production-ready REST API using Go and PostgreSQL.",
      "category": "coding",
      "creator_id": "usr_01HABC5678",
      "duration_seconds": 10842,
      "view_count": 3820,
      "privacy": "public",
      "thumbnail_url": "https://cdn.hitorino.tv/thumbnails/vid_01HVID1234.jpg",
      "video_url": "https://watch.hitorino.tv/videos/vid_01HVID1234",
      "source_stream_id": "str_01HXYZ1234",
      "published_at": "2024-06-11T08:00:00Z",
      "created_at": "2024-06-10T23:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "cur_01HVID9999",
    "has_more": true
  }
}
data
array
Array of video objects matching the query.
pagination
object
Cursor-based pagination metadata.

Get Video

Retrieves a single on-demand video by its unique ID, returning all metadata fields plus extended playback information.
GET /videos/{id}

Path Parameters

id
string
required
The unique video ID (e.g., vid_01HVID1234).

Request Examples

curl https://api.hitorino.tv/v1/videos/vid_01HVID1234 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "id": "vid_01HVID1234",
  "title": "Building a REST API in Go — Full Session",
  "description": "Three-hour deep dive into building a production-ready REST API using Go and PostgreSQL.",
  "category": "coding",
  "creator_id": "usr_01HABC5678",
  "duration_seconds": 10842,
  "view_count": 3820,
  "privacy": "public",
  "thumbnail_url": "https://cdn.hitorino.tv/thumbnails/vid_01HVID1234.jpg",
  "video_url": "https://watch.hitorino.tv/videos/vid_01HVID1234",
  "playback_url": "https://cdn.hitorino.tv/hls/vid_01HVID1234/index.m3u8",
  "source_stream_id": "str_01HXYZ1234",
  "chapters": [
    {
      "title": "Introduction",
      "start_seconds": 0
    },
    {
      "title": "Project setup & dependencies",
      "start_seconds": 420
    },
    {
      "title": "Routing with chi",
      "start_seconds": 1800
    }
  ],
  "tags": ["go", "api", "postgresql", "backend"],
  "published_at": "2024-06-11T08:00:00Z",
  "created_at": "2024-06-10T23:00:00Z",
  "updated_at": "2024-06-11T08:00:00Z"
}
playback_url
string
HLS manifest URL for direct video playback. You can pass this to a compatible player (e.g., HLS.js, Video.js) to embed the video in your own application.
chapters
array
Creator-defined chapters for the video. Each chapter has a title (string) and start_seconds (integer) indicating where it begins.
tags
array
Array of string tags associated with the video for search and discovery.
updated_at
string
ISO 8601 timestamp of the most recent metadata update to this video.
Use the playback_url (HLS format) with an open-source player like HLS.js to embed Hitorino videos directly in your web app without iframes.
The playback_url field is only returned on GET /videos/{id} — it is intentionally omitted from list responses to keep payloads compact.