---
title: "Get already-known video and cache facts without an upstream fetch"
method: GET
path: "/v1/video"
tags: ["Videos"]
---

# Get already-known video and cache facts without an upstream fetch

`GET /v1/video`

## Request

- Base URL: `https://api.scripthaul.com`
- URL: `https://api.scripthaul.com/v1/video`
- Auth: HTTP bearer

Returns only facts ScriptHaul already holds; it never triggers a transcript fetch or a YouTube Data API call. Identify the video with exactly one of video_id, input, or url.

## Query parameters

- `video_id` string
- `input` string
- `url` string

## Response `200`

Known facts

- VideoFacts
  - `ok` unknown, required
  - `video` object, required
    - `id` string, required
    - `title` string, nullable
    - `channel_id` string, nullable
    - `channel_title` string, nullable
    - `published_at` string, nullable
    - `duration` integer, nullable: Seconds
    - `status` 'unknown' | 'fetched' | 'no_captions' | 'unavailable' | 'error', required
    - `error_class` string, nullable
    - `fetched_at` string, nullable
  - `cached_languages` object[], required
    - `language_code` string, required
    - `kind` 'manual' | 'asr', required
    - `cached_at` string, nullable
  - `caption_tracks` CaptionTrack[], required
    - `language_code` string, required
    - `kind` 'manual' | 'asr', required
    - `name` string
  - `selected` CaptionTrack, required
    - `language_code` string, required
    - `kind` 'manual' | 'asr', required
    - `name` string

## Other responses

- `400`: Typed API error
- `401`: Typed API error
- `403`: Typed API error
- `429`: Typed API error

---

[API](https://skmtc.dev/scripthaul/apis/scripthaul-api.md) · [All operations](https://skmtc.dev/scripthaul/apis/scripthaul-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scripthaul/apis/scripthaul-api/revisions/f476d69f4a6b?raw)
