# About YouTube v3 A drop-in HTTP interface to YouTube's public data — channels, videos, playlists, comments, captions and search — without OAuth flows, Google Cloud projects, or daily quota units to budget against. If you already know the official YouTube Data API v3, you already know this one. Resource names, `part` semantics, query parameters and response shapes follow the same model, so porting existing code usually means changing the base URL and swapping the auth header. --- ## Why use it **No Google Cloud setup.** No project creation, no OAuth consent screen, no service account JSON. One API key from your JoJAPI dashboard and you're sending requests. **No quota-unit math.** The official API charges different unit costs per endpoint, which makes capacity planning awkward. Here every request costs a flat **1 credit**, so your usage is trivially predictable. **Familiar surface.** Built to mirror the official resource model, including `part`, `maxResults`, `pageToken` and the standard pagination envelope. **One key across APIs.** The same `X-JoJAPI-Key` works across every API in your JoJAPI account — one dashboard for keys, usage and billing. --- ## Endpoints 14 read endpoints, all `GET`: | Area | Endpoints | |---|---| | Channels | `Channels`, `ChannelSections`, `Activities`, `Subscriptions` | | Videos | `Videos`, `VideoCategories`, `Captions` | | Playlists | `Playlists`, `PlaylistItems` | | Comments | `Comments`, `CommentThreads` | | Discovery | `Search` | | Metadata | `I18nLanguages`, `I18nRegions` | Full parameter reference for each is in the **Documentation** tab, with a live playground you can fire requests from before writing any code. --- ## Base URL ``` https://youtube-v3.jojapi.net/ ``` ## Authentication Send your key in the `X-JoJAPI-Key` header: ```bash curl -H "X-JoJAPI-Key: YOUR_KEY" \ "https://youtube-v3.jojapi.net/videos/?part=snippet,statistics&id=dQw4w9WgXcQ" ``` ```javascript const res = await fetch( "https://youtube-v3.jojapi.net/channels/?part=snippet,statistics&id=UC_x5XG1OV2P6uZZ5FSM9Ttw", { headers: { "X-JoJAPI-Key": process.env.JOJAPI_KEY } } ); const data = await res.json(); ``` ```python import requests r = requests.get( "https://youtube-v3.jojapi.net/search/", headers={"X-JoJAPI-Key": JOJAPI_KEY}, params={"part": "snippet", "q": "machine learning", "maxResults": 25}, ) r.raise_for_status() ``` --- ## Typical uses - **Channel analytics dashboards** — pull `Channels` + `Activities` + `Videos` on a schedule and track subscriber, view and upload trends over time. - **Content discovery and monitoring** — run `Search` queries on keywords or topics and alert when new material appears. - **Comment mining** — pull `CommentThreads` and `Comments` for sentiment analysis, moderation tooling or audience research. - **Playlist syncing** — mirror `Playlists` and `PlaylistItems` into your own catalogue or recommendation system. - **Subtitle track discovery** — list the caption tracks a video carries via `Captions`, including language, `trackKind` (uploaded vs. auto-generated), and draft/serving status, to drive downstream transcription or translation workflows. The endpoint returns track metadata, not the caption text itself. - **Agent tooling** — the endpoints are small and predictable enough to expose directly as tools to an LLM agent. --- ## Notes and limits - **Read-only.** This API exposes public data retrieval. Uploads, edits, deletions and other write operations are not supported, and neither are endpoints that require a user's OAuth grant to their own private data. - **Public data only.** Private and unlisted resources, and anything gated behind a channel owner's authorisation, are out of scope. - **Response shape.** Bodies follow the official v3 structure (`kind`, `etag`, `items`, `nextPageToken`) with one addition: a top-level `status` field set by the gateway. Existing parsers that read by key rather than by strict schema validation won't need changes. - **Errors.** `401`, `402` and `429` responses come from the JoJAPI gateway (key, credit and rate-limit issues), not from the upstream API. Everything else is passed through. See the gateway response reference linked in the docs. - **Not affiliated with Google or YouTube.** This is an independent service. You remain responsible for complying with YouTube's terms and applicable law in how you use the data you retrieve. --- ## Pricing and support Plans and included credits are on the **Pricing** tab; every request against any endpoint costs 1 credit. Questions, bug reports and feature requests go in the **Discussions** tab — they get read.