{"openapi":"3.1.0","info":{"title":"YouTube API reference","description":"YouTube endpoints return publicly available data as structured JSON. Sign in and the docs will fill in your account key for test requests.\n\nVideo endpoints accept an 11-character video ID. Channel endpoints accept a `UC...` channel ID or an `@handle`.\n\nTapline is not affiliated with, endorsed by, or sponsored by YouTube. For help, email [hello@tapline.sh](mailto:hello@tapline.sh).\n\n## Client libraries\n\nPrefer a typed client to raw HTTP? Each one reads your key from `TAPLINE_API_KEY`, retries temporary failures, and honors Retry-After.\n\n```bash\npip install tapline          # Python client\nnpm install @tapline/client  # TypeScript client\nnpm install -g @tapline/cli  # CLI\n```\n\nGuides and source: [Python client](https://github.com/TaplineData/tapline-python), [TypeScript client](https://github.com/TaplineData/tapline-typescript), [CLI](https://github.com/TaplineData/tapline-cli).\n\n## Set up with an AI agent\n\n[Copy the setup prompt](#copy-agent-prompt) and paste it into your coding agent, or point the agent straight at [SKILL.md](https://tapline.sh/SKILL.md).","version":"0.2.0"},"paths":{"/v1/youtube/videos/{video_id}/subtitles":{"get":{"tags":["YouTube"],"summary":"Transcripts","description":"Get subtitles for a video in the requested language and format.\n\nCredits: 2 per request.","operationId":"get_subtitles_v1_youtube_videos__video_id__subtitles_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms.","examples":["dQw4w9WgXcQ"],"title":"Video Id"},"description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms."},{"name":"language","in":"query","required":false,"schema":{"type":"string","description":"YouTube-compatible language tag with a registered two- or three-letter primary code and optional script/region (for example pt-BR, es-419, zh-Hans, en-orig). Must exactly match a subtitle track the video has; YouTube auto-translation is not available. A track `id` from /subtitles/tracks (for example en.uYU-mmqFLq8) requests that exact track.","examples":["pt-BR"],"default":"en","title":"Language"},"description":"YouTube-compatible language tag with a registered two- or three-letter primary code and optional script/region (for example pt-BR, es-419, zh-Hans, en-orig). Must exactly match a subtitle track the video has; YouTube auto-translation is not available. A track `id` from /subtitles/tracks (for example en.uYU-mmqFLq8) requests that exact track."},{"name":"fallback_languages","in":"query","required":false,"schema":{"description":"Languages to try, in order, if the requested language is unavailable. Use `*` to accept any language, defaulting to the video's spoken language.","examples":[["en","fr","es"]],"title":"Fallback Languages","type":["array","null"],"items":{"type":"string"}},"description":"Languages to try, in order, if the requested language is unavailable. Use `*` to accept any language, defaulting to the video's spoken language.","style":"form","explode":false,"allowReserved":true},{"name":"subtitle_format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SubtitleFormat","description":"Subtitle document format: srt (default), vtt, json3, ttml, or txt (plain text extracted from the srt, one line per cue).","default":"srt"},"description":"Subtitle document format: srt (default), vtt, json3, ttml, or txt (plain text extracted from the srt, one line per cue)."},{"name":"source","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SubtitleSource","description":"Caption track to return: manual (human-authored) or auto (machine-generated). Defaults to any, which prefers manual and falls back to auto.","default":"any"},"description":"Caption track to return: manual (human-authored) or auto (machine-generated). Defaults to any, which prefers manual and falls back to auto."},{"name":"country","in":"query","required":false,"schema":{"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase.","examples":["BR"],"title":"Country","type":["string","null"]},"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubtitleResponse"},"example":{"transcript":"1\n00:00:01,360 --> 00:00:03,040\n[♪♪♪]\n\n2\n00:00:18,640 --> 00:00:21,880\n♪ We're no strangers to love ♪\n\n3\n00:00:22,640 --> 00:00:26,960\n♪ You know the rules\nand so do I ♪\n\n4\n00:00:27,040 --> 00:00:31,040\n♪ A full commitment's\nwhat I'm thinking of ♪\n\n5\n00:00:31,120 --> 00:00:35,080\n♪ You wouldn't get this\nfrom any other guy ♪\n\n6\n00:00:35,160 --> 00:00:39,520\n♪ I just wanna tell you\nhow I'm feeling ♪\n\n7\n00:00:40,520 --> 00:00:42,920\n♪ Gotta make you understand ♪\n\n8\n00:00:43,000 --> 00:00:45,120\n♪ Never gonna give you up ♪\n\n9\n00:00:45,200 --> 00:00:47,080\n♪ Never gonna let you down ♪\n\n10\n00:00:47,320 --> 00:00:51,120\n♪ Never gonna run around\nand desert you ♪\n\n11\n00:00:51,480 --> 00:00:53,480\n♪ Never gonna make you cry ♪\n\n12\n00:00:53,600 --> 00:00:55,520\n♪ Never gonna say goodbye ♪\n\n13\n00:00:55,720 --> 00:00:59,360\n♪ Never gonna tell a lie\nand hurt you ♪\n\n14\n00:01:00,800 --> 00:01:04,800\n♪ We've known each other\nfor so long ♪\n\n15\n00:01:04,880 --> 00:01:09,040\n♪ Your heart's been aching\nbut you're too shy to say it ♪\n\n16\n00:01:09,120 --> 00:01:12,960\n♪ Inside we both know\nwhat's been going ♪\n\n17\n00:01:13,360 --> 00:01:17,200\n♪ We know the game\nand we're gonna play it ♪\n\n18\n00:01:17,400 --> 00:01:22,040\n♪ And if you ask me\nhow I'm feeling ♪\n\n19\n00:01:22,400 --> 00:01:25,240\n♪ Don't tell me\nyou're too blind to see ♪\n\n20\n00:01:25,320 --> 00:01:27,280\n♪ Never gonna give you up ♪\n\n21\n00:01:27,360 --> 00:01:29,320\n♪ Never gonna let you down ♪\n\n22\n00:01:29,440 --> 00:01:33,720\n♪ Never gonna run around\nand desert you ♪\n\n23\n00:01:33,800 --> 00:01:35,600\n♪ Never gonna make you cry ♪\n\n24\n00:01:35,760 --> 00:01:38,000\n♪ Never gonna say goodbye ♪\n\n25\n00:01:38,080 --> 00:01:42,040\n♪ Never gonna tell a lie\nand hurt you ♪\n\n26\n00:01:42,200 --> 00:01:44,120\n♪ Never gonna give you up ♪\n\n27\n00:01:44,280 --> 00:01:46,360\n♪ Never gonna let you down ♪\n\n28\n00:01:46,480 --> 00:01:50,080\n♪ Never gonna run around\nand desert you ♪\n\n29\n00:01:50,760 --> 00:01:52,720\n♪ Never gonna make you cry ♪\n\n30\n00:01:52,800 --> 00:01:54,680\n♪ Never gonna say goodbye ♪\n\n31\n00:01:54,960 --> 00:01:58,760\n♪ Never gonna tell a lie\nand hurt you ♪\n\n32\n00:01:59,840 --> 00:02:02,960\n♪ (Ooh, give you up) ♪\n\n33\n00:02:03,720 --> 00:02:07,360\n♪ (Ooh, give you up) ♪\n\n34\n00:02:08,480 --> 00:02:10,120\n♪ Never gonna give,\nnever gonna give ♪\n\n35\n00:02:10,240 --> 00:02:11,560\n♪ (Give you up) ♪\n\n36\n00:02:12,480 --> 00:02:14,240\n♪ Never gonna give,\nnever gonna give ♪\n\n37\n00:02:14,360 --> 00:02:15,920\n♪ (Give you up) ♪\n\n38\n00:02:16,760 --> 00:02:21,080\n♪ We've known each other\nfor so long ♪\n\n39\n00:02:21,200 --> 00:02:25,200\n♪ Your heart's been aching\nbut you're too shy to say it ♪\n\n40\n00:02:25,280 --> 00:02:29,120\n♪ Inside we both know\nwhat's been going ♪\n\n41\n00:02:29,520 --> 00:02:33,200\n♪ We know the game\nand we're gonna play it ♪\n\n42\n00:02:33,360 --> 00:02:38,040\n♪ I just wanna tell you\nhow I'm feeling ♪\n\n43\n00:02:38,640 --> 00:02:41,320\n♪ Gotta make you understand ♪\n\n44\n00:02:41,400 --> 00:02:43,360\n♪ Never gonna give you up ♪\n\n45\n00:02:43,440 --> 00:02:45,640\n♪ Never gonna let you down ♪\n\n46\n00:02:45,720 --> 00:02:49,720\n♪ Never gonna run around\nand desert you ♪\n\n47\n00:02:49,800 --> 00:02:51,640\n♪ Never gonna make you cry ♪\n\n48\n00:02:51,800 --> 00:02:53,960\n♪ Never gonna say goodbye ♪\n\n49\n00:02:54,040 --> 00:02:57,600\n♪ Never gonna tell a lie\nand hurt you ♪\n\n50\n00:02:58,200 --> 00:03:00,240\n♪ Never gonna give you up ♪\n\n51\n00:03:00,320 --> 00:03:02,440\n♪ Never gonna let you down ♪\n\n52\n00:03:02,520 --> 00:03:06,640\n♪ Never gonna run around\nand desert you ♪\n\n53\n00:03:06,720 --> 00:03:08,720\n♪ Never gonna make you cry ♪\n\n54\n00:03:08,840 --> 00:03:10,720\n♪ Never gonna say goodbye ♪\n\n55\n00:03:10,840 --> 00:03:15,200\n♪ Never gonna tell a lie\nand hurt you ♪\n\n56\n00:03:15,280 --> 00:03:17,120\n♪ Never gonna give you up ♪\n\n57\n00:03:17,200 --> 00:03:19,240\n♪ Never gonna let you down ♪\n\n58\n00:03:19,400 --> 00:03:23,120\n♪ Never gonna run around\nand desert you ♪\n\n59\n00:03:23,360 --> 00:03:25,600\n♪ Never gonna make you cry ♪\n\n60\n00:03:25,680 --> 00:03:27,840\n♪ Never gonna say goodbye ♪\n\n61\n00:03:27,920 --> 00:03:31,320\n♪ Never gonna tell a lie\nand hurt you ♪\n\n","language":"en","track_id":"en","is_auto_generated":false,"metadata":{"video_id":"dQw4w9WgXcQ","title":"Rick Astley - Never Gonna Give You Up (Official Video)","channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","duration":213}}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found. Subtitle 404s include `available_languages` when the video's tracks are known.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/SubtitleNotFoundResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":2}}},"/v1/youtube/search":{"get":{"tags":["YouTube"],"summary":"Search","description":"Search for matching videos, channels, and playlists.\n\nCredits: 3 per request.","operationId":"search_v1_youtube_search_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"description":"Search text; surrounding whitespace is removed (1–200 characters).","examples":["python tutorial"],"title":"Query"},"description":"Search text; surrounding whitespace is removed (1–200 characters)."},{"name":"country","in":"query","required":false,"schema":{"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase.","examples":["BR"],"title":"Country","type":["string","null"]},"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase."},{"name":"sort","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SearchSort","description":"Rank order for results: relevance, upload date, view count, or rating.","default":"relevance"},"description":"Rank order for results: relevance, upload date, view count, or rating."},{"name":"upload_date","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/UploadDate"},{"type":"null"}],"description":"Restrict results to an upload-recency window (last hour through this year).","title":"Upload Date"},"description":"Restrict results to an upload-recency window (last hour through this year)."},{"name":"search_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SearchType"},{"type":"null"}],"description":"Restrict results to a single kind: video, channel, playlist, or movie.","title":"Search Type"},"description":"Restrict results to a single kind: video, channel, playlist, or movie."},{"name":"duration","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VideoDuration"},{"type":"null"}],"description":"Restrict video results to a duration band (under 4 min, 4–20 min, over 20 min).","title":"Duration"},"description":"Restrict video results to a duration band (under 4 min, 4–20 min, over 20 min)."},{"name":"features","in":"query","required":false,"schema":{"description":"Require one or more result features (repeatable): e.g. hd, 4k, subtitles, live.","title":"Features","type":["array","null"],"items":{"$ref":"#/components/schemas/Feature-Input"}},"description":"Require one or more result features (repeatable): e.g. hd, 4k, subtitles, live.","style":"form","explode":false,"allowReserved":true},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Send the `pagination.next_cursor` from the last search page to continue. Leave it empty for the first page. The cursor is bound to the normalized query, country, and filters; changing any of them returns `invalid_cursor` (400). Each request returns one complete upstream page. Results are live rather than a durable snapshot, so cursors can expire.","default":"","title":"Cursor"},"description":"Send the `pagination.next_cursor` from the last search page to continue. Leave it empty for the first page. The cursor is bound to the normalized query, country, and filters; changing any of them returns `invalid_cursor` (400). Each request returns one complete upstream page. Results are live rather than a durable snapshot, so cursors can expire."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__scrapers__youtube__client__response_types__SearchResponse"},"example":{"query":"rick astley never gonna give you up","returned_count":5,"results":[{"result_type":"video","id":"dQw4w9WgXcQ","title":"Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","duration":214,"view_count":1762072576,"channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","channel_url":"https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","thumbnail":"https://i.ytimg.com/vi/dQw4w9WgXcQ/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAfut6ib46TKYWnNm5PxBrcX8HLWg","thumbnails":null,"description":"The official video for “Never Gonna Give You Up” by Rick Astley. Never: The Autobiography OUT NOW! Follow this link to get ...","live_status":null,"channel_is_verified":true},{"result_type":"video","id":"3BFTio5296w","title":"Never Gonna Give You Up (2022 Remaster)","url":"https://www.youtube.com/watch?v=3BFTio5296w","duration":214,"view_count":8103059,"channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","channel_url":"https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","thumbnail":"https://i.ytimg.com/vi/3BFTio5296w/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDp65n0X93YwKuQa_SRxGgA6cXi_A","thumbnails":null,"description":"Provided to YouTube by BMG Rights Management (UK) Ltd. Never Gonna Give You Up (2022 Remaster) · Rick Astley Whenever ...","live_status":null,"channel_is_verified":true},{"result_type":"video","id":"TMBN8hj5Jy0","title":"Rick Astley - Never Gonna Give You Up (Live2016) Tradução","url":"https://www.youtube.com/watch?v=TMBN8hj5Jy0","duration":307,"view_count":6251537,"channel":"KALUNGA - I Love Musiic","channel_id":"UC_RXAvEdK0a8HjP4jkTCCaA","channel_url":"https://www.youtube.com/channel/UC_RXAvEdK0a8HjP4jkTCCaA","thumbnail":"https://i.ytimg.com/vi/TMBN8hj5Jy0/hqdefault.jpg?sqp=-oaymwE2COADEI4CSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgB_gmAAtAFigIMCAAQARhyIE8oRTAP&rs=AOn4CLDInOAKWenxU3kZORlrQc5IzrTlDg","thumbnails":null,"description":"Um show , simplesmente Maravilhoso ! Uma das melhores vozes de todos os tempos . Rick Astley - Never Gonna Give You Up ...","live_status":null,"channel_is_verified":true},{"result_type":"video","id":"nMAcZp5Tpjw","title":"#rickastley #80sdance #dancemix #80smix","url":"https://www.youtube.com/watch?v=nMAcZp5Tpjw","duration":2198,"view_count":624487,"channel":"Funky Disco Lounge","channel_id":"UCYep_dRfPFSA-_sGuLHTM1g","channel_url":"https://www.youtube.com/channel/UCYep_dRfPFSA-_sGuLHTM1g","thumbnail":"https://i.ytimg.com/vi/nMAcZp5Tpjw/hq720.jpg?sqp=-oaymwE2COgCEMoBSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgB_gmAAtAFigIMCAAQARhXIFYoZTAP&rs=AOn4CLDs_4Mx596RsduTI_rJX9e8Wf0BJw","thumbnails":null,"description":"TRACKLIST: 00:00 NEVER GONNA GIVE YOU UP 04:19 WHENEVER YOU NEED SOMEBODY 09:15 TOGETHER FOREVER ...","live_status":null,"channel_is_verified":null},{"result_type":"video","id":"DLzxrzFCyOs","title":"Rick Astley - Never Gonna Give You Up [HQ]","url":"https://www.youtube.com/watch?v=DLzxrzFCyOs","duration":213,"view_count":9909260,"channel":"AllKindsOfStuff","channel_id":"UCLNd5EtH77IyN1frExzwPRQ","channel_url":"https://www.youtube.com/channel/UCLNd5EtH77IyN1frExzwPRQ","thumbnail":"https://i.ytimg.com/vi/DLzxrzFCyOs/hq720.jpg?sqp=-oaymwE2COgCEMoBSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgBvgeAAtAFigIMCAAQARhQIE4oZTAP&rs=AOn4CLAA5D8jnUTLdSVDtUzWgcdQYS40Gg","thumbnails":null,"description":"Artist: Rick Astley Title: Never Gonna Give You Up Difference with original: nothing but the quality of audio and video. all rights ...","live_status":null,"channel_is_verified":null}],"pagination":{"next_cursor":"eyJ2IjoxLCJxIjoicmljayBhc3RsZXkgbmV2ZXIgZ29ubmEgZ2l2ZSB5b3UgdXAiLCJjIjpudWxsLCJmIjp7InNvcnQiOiJyZWxldmFuY2UiLCJ1cGxvYWRfZGF0ZSI6bnVsbCwic2VhcmNoX3R5cGUiOm51bGwsImR1cmF0aW9uIjpudWxsLCJmZWF0dXJlcyI6W119LCJ0IjoieW91dHViZS1jb250aW51YXRpb24tdG9rZW4ifQ","completion":null}}}}},"400":{"description":"The pagination cursor is malformed, expired, or bound to a different YouTube resource.","content":{"application/json":{"examples":{"invalid_cursor":{"value":{"code":"invalid_cursor","message":"The pagination cursor is invalid.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":3}}},"/v1/youtube/playlist/{playlist_id}":{"get":{"tags":["YouTube"],"summary":"Get Playlist","description":"Get a playlist and its videos.\n\nCredits: 2 per request.","operationId":"get_playlist_v1_youtube_playlist__playlist_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"playlist_id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{2,150}$","description":"YouTube playlist ID (2–150 URL-safe characters).","examples":["PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf"],"title":"Playlist Id"},"description":"YouTube playlist ID (2–150 URL-safe characters)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum playlist entries to return (1–100).","default":50,"title":"Limit"},"description":"Maximum playlist entries to return (1–100)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaylistResponse"},"example":{"playlist_id":"PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf","title":"Select Lectures","description":"Some lectures on deep learning, deep reinforcement learning, autonomous vehicles, and artificial intelligence. https://deeplearning.mit.edu","channel":"Lex Fridman","channel_id":"UCSHZKyawb77ixDdsGog4iWA","channel_url":"https://www.youtube.com/channel/UCSHZKyawb77ixDdsGog4iWA","thumbnail":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLCZUIffy_srdu3EvPEKno6zPMotGg","thumbnails":[{"url":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLCZUIffy_srdu3EvPEKno6zPMotGg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEWCMQBEG5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLBZ20QjzCmPD10YTlPYvdnmM1HJjA","width":196,"height":110},{"url":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEXCPYBEIoBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLB7lYZopxtwWTA_d0cmwagiWo419A","width":246,"height":138}],"view_count":858781,"modified_date":"2023-02-17","total_count":2,"webpage_url":"https://www.youtube.com/playlist?list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf","returned_count":2,"entries":[{"video_id":"0VH1Lim8gL8","title":"Deep Learning State of the Art (2020)","url":"https://www.youtube.com/watch?v=0VH1Lim8gL8","duration":5261,"view_count":1300000,"channel":"Lex Fridman","channel_id":"UCSHZKyawb77ixDdsGog4iWA","channel_url":"https://www.youtube.com/channel/UCSHZKyawb77ixDdsGog4iWA","thumbnail":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAhPXhLiUPxHurQ4Ryqd0CzEzmvMg","thumbnails":[{"url":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAhPXhLiUPxHurQ4Ryqd0CzEzmvMg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD6IWpoasYVtS6RaZHUvdF27yxSwQ","width":196,"height":110},{"url":"https://i.ytimg.com/vi/0VH1Lim8gL8/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDa7EjPp-LR52xF2MdWKYE5tlOesg","width":246,"height":138}],"live_status":null,"channel_is_verified":null},{"video_id":"O5xeyoRL95U","title":"Deep Learning Basics: Introduction and Overview","url":"https://www.youtube.com/watch?v=O5xeyoRL95U","duration":4086,"view_count":2500000,"channel":"Lex Fridman","channel_id":"UCSHZKyawb77ixDdsGog4iWA","channel_url":"https://www.youtube.com/channel/UCSHZKyawb77ixDdsGog4iWA","thumbnail":"https://i.ytimg.com/vi/O5xeyoRL95U/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDtQDvyisRt5tppl73Xkw7o6V4ZQA","thumbnails":[{"url":"https://i.ytimg.com/vi/O5xeyoRL95U/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDtQDvyisRt5tppl73Xkw7o6V4ZQA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/O5xeyoRL95U/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB8MnDVZtH-eQNS665jVeBAqL-euA","width":196,"height":110},{"url":"https://i.ytimg.com/vi/O5xeyoRL95U/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAik4j3gnAJ4AFaJxdyxBuAyiROYQ","width":246,"height":138}],"live_status":null,"channel_is_verified":null}],"handle":"@lexfridman","handle_url":"https://www.youtube.com/@lexfridman"}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":2}}},"/v1/youtube/videos/{video_id}/comments":{"get":{"tags":["YouTube"],"summary":"Get Comments","description":"Get comments for a video.\n\nCredits: 3 per request.","operationId":"get_comments_v1_youtube_videos__video_id__comments_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms.","examples":["dQw4w9WgXcQ"],"title":"Video Id"},"description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms."},{"name":"sort","in":"query","required":false,"schema":{"$ref":"#/components/schemas/CommentSortOrder","description":"Comment order: top-ranked or newest first. Pinned threads surface first in either order. Ignored when cursor is supplied because the cursor preserves the walk's sort.","default":"top"},"description":"Comment order: top-ranked or newest first. Pinned threads surface first in either order. Ignored when cursor is supplied because the cursor preserves the walk's sort."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Send the `pagination.next_cursor` from the last page to get the next one. Leave it empty for the first page. The cursor remembers its sort, so `sort` is ignored. Each request returns one complete upstream page, usually 20 threads. Sorting by top stops at about 1,200 comments, marked `completion=depth_limit`. A cursor only works on one video and can expire; bad or expired ones return `invalid_cursor` (400).","default":"","title":"Cursor"},"description":"Send the `pagination.next_cursor` from the last page to get the next one. Leave it empty for the first page. The cursor remembers its sort, so `sort` is ignored. Each request returns one complete upstream page, usually 20 threads. Sorting by top stops at about 1,200 comments, marked `completion=depth_limit`. A cursor only works on one video and can expire; bad or expired ones return `invalid_cursor` (400)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentsResponse"},"example":{"video_id":"dQw4w9WgXcQ","returned_count":3,"threads":[{"comment":{"comment_id":"Ugzge340dBgB75hWBm54AaABAg","text":"can confirm: he never gave us up","like_count":275000,"dislike_count":null,"timestamp":1753909988,"published_at":"2025-07-30T21:13:08Z","is_pinned":true,"is_favorited":true,"author":"@YouTube","author_id":"UCBR8-60-B28hp2BmDPdntcQ","author_thumbnail":"https://yt3.ggpht.com/3s6evpqAiDU9tQR4sC2siJippbH2RWVPnwHgyl4V0th2iuQz0VDQZbUhQBGmsxLYo-mjG6TqZQ=s88-c-k-c0x00ffffff-no-rj","author_url":"https://www.youtube.com/@YouTube","author_is_verified":true,"author_is_uploader":false,"html":null},"replies_cursor":"eyJ2IjoxLCJ2aWQiOiJkUXc0dzlXZ1hjUSIsImNpZCI6IlVnemdlMzQwZEJnQjc1aFdCbTU0QWFBQkFnIiwidCI6IkVnMFNDMlJSZHpSM09WZG5XR05SR0FZeWd3RWFVQklhVldkNloyVXpOREJrUW1kQ056Vm9WMEp0TlRSQllVRkNRV2NpQWdnQUtoaFZRM1ZCV0VaclozTjNNVXczZUdGRFptNWtOVXBLVDNjeUMyUlJkelIzT1ZkbldHTlJRQUJJQ29JQkFnZ0JRaTlqYjIxdFpXNTBMWEpsY0d4cFpYTXRhWFJsYlMxVlozcG5aVE0wTUdSQ1owSTNOV2hYUW0wMU5FRmhRVUpCWnclM0QlM0QifQ"},{"comment":{"comment_id":"UgyEnXfdC-umwvTt8JF4AaABAg","text":"Gonna flag this for nudity so I can rick roll the YouTube staff","like_count":561000,"dislike_count":null,"timestamp":1596229988,"published_at":"2020-07-31T21:13:08Z","is_pinned":false,"is_favorited":false,"author":"@Oatman69","author_id":"UCWf34D_s8K_m2vwBISIDWtg","author_thumbnail":"https://yt3.ggpht.com/ghenbV7T5VMOA3iqp3PThC82exqcu7iVng_iWNx1Ujak72Ti4oZZ_XzSVzIrfk9arP1XrFtnZA=s88-c-k-c0x00ffffff-no-rj","author_url":"https://www.youtube.com/@Oatman69","author_is_verified":false,"author_is_uploader":false,"html":null},"replies_cursor":"eyJ2IjoxLCJ2aWQiOiJkUXc0dzlXZ1hjUSIsImNpZCI6IlVneUVuWGZkQy11bXd2VHQ4SkY0QWFBQkFnIiwidCI6IkVnMFNDMlJSZHpSM09WZG5XR05SR0FZeWd3RWFVQklhVldkNVJXNVlabVJETFhWdGQzWlVkRGhLUmpSQllVRkNRV2NpQWdnQUtoaFZRM1ZCV0VaclozTjNNVXczZUdGRFptNWtOVXBLVDNjeUMyUlJkelIzT1ZkbldHTlJRQUZJQ29JQkFnZ0JRaTlqYjIxdFpXNTBMWEpsY0d4cFpYTXRhWFJsYlMxVlozbEZibGhtWkVNdGRXMTNkbFIwT0VwR05FRmhRVUpCWnclM0QlM0QifQ"},{"comment":{"comment_id":"UgxIOV-sXAchpKX94cB4AaABAg","text":"1987 : normal song \r\n2026 : national anthem of the universe","like_count":135000,"dislike_count":null,"timestamp":1596229988,"published_at":"2020-07-31T21:13:08Z","is_pinned":false,"is_favorited":false,"author":"@ochkalov","author_id":"UCtbyFPryy7J4DR4xh5CRCvA","author_thumbnail":"https://yt3.ggpht.com/mnit-bn8T-v7Z3XoOg71uoXPsN0sErvP-fCJzUboX6CfdJTnQjssN1QATams-lV9zMyZoqwI1Q=s88-c-k-c0x00ffffff-no-rj","author_url":"https://www.youtube.com/@ochkalov","author_is_verified":false,"author_is_uploader":false,"html":null},"replies_cursor":"eyJ2IjoxLCJ2aWQiOiJkUXc0dzlXZ1hjUSIsImNpZCI6IlVneElPVi1zWEFjaHBLWDk0Y0I0QWFBQkFnIiwidCI6IkVnMFNDMlJSZHpSM09WZG5XR05SR0FZeWd3RWFVQklhVldkNFNVOVdMWE5ZUVdOb2NFdFlPVFJqUWpSQllVRkNRV2NpQWdnQUtoaFZRM1ZCV0VaclozTjNNVXczZUdGRFptNWtOVXBLVDNjeUMyUlJkelIzT1ZkbldHTlJRQUJJQ29JQkFnZ0JRaTlqYjIxdFpXNTBMWEpsY0d4cFpYTXRhWFJsYlMxVlozaEpUMVl0YzFoQlkyaHdTMWc1TkdOQ05FRmhRVUpCWnclM0QlM0QifQ"}],"pagination":{"next_cursor":"eyJ2IjoxLCJ2aWQiOiJkUXc0dzlXZ1hjUSIsInNvcnQiOiJ0b3AiLCJ0IjoiRWcwU0MyUlJkelIzT1ZkbldHTlJHQVl5N0FJS3dnSm5aWFJmY21GdWEyVmtYM04wY21WaGJYTXRMVU54V1VKRFNVRkZSbEpsTXpCVVoyRnRkMFZMYkdkRlNUSkdPRkZuUVZGWlFubExURUZtZFcxeVV6RlpNVjlTYlhWVmFVOUJjbUZOZFRZeFJtaDNWbkJHUTNaSFFtdEhNbnBxUTB0UVozcFpOWEp1Ykd0WFlqQlRlbGxzYWpkSlRHRnlVa0ZDTW5KUE1tRk5NRTFpU0U1UVJtaFZiMlpWWVVkRVZ6Rk9WbTB0Y0U0elYyaG9ha013VUVWNGNHMVBZMlU0VVcxaVFWTnVZVzFsUTBJM1RqbFFXbTU0UW1kNlpETmtlRkY2ZVd0cWJWaFRXRXBQWjJzME16ZG1VVk5yTUhVME9WcE1VRTlXZEZGdlQxUkZOSHBtUTBwbWMxbFNOekJIUTJOVWQzTlJSa0pKUmtOTWMyZEhRVUZUUW5kcFNFbENRVUpIUVVGVFFsRnBTa2xDWjBGRloxVkphVU5CV1VGQ1NVaERTVkZuUlVFNFdVRlNTVWhEU1ZWblJVRlJXVUZTU1VaRFMyZG5SMEZDVVVGQkloRWlDMlJSZHpSM09WZG5XR05STUFCNEFTZ1VRaEJqYjIxdFpXNTBjeTF6WldOMGFXOXUiLCJuIjoyMCwidGMiOjI0NDY0MzR9","completion":null}}}}},"400":{"description":"The pagination cursor is malformed, expired, or bound to a different YouTube resource.","content":{"application/json":{"examples":{"invalid_cursor":{"value":{"code":"invalid_cursor","message":"The pagination cursor is invalid.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":3}}},"/v1/youtube/videos/{video_id}/comments/{comment_id}/replies":{"get":{"tags":["YouTube"],"summary":"Get Comment Replies","description":"Get replies to a comment on a video.\n\nCredits: 2 per request.","operationId":"get_comment_replies_v1_youtube_videos__video_id__comments__comment_id__replies_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms.","examples":["dQw4w9WgXcQ"],"title":"Video Id"},"description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms."},{"name":"comment_id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_.\\-]{5,150}$","description":"YouTube top-level comment ID (5–150 URL-safe characters).","examples":["Ugx9V7S9ehQKZ6b5N414AaABAg"],"title":"Comment Id"},"description":"YouTube top-level comment ID (5–150 URL-safe characters)."},{"name":"cursor","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Required. Send the `replies_cursor` from a comment, or the `pagination.next_cursor` from the last replies page. A cursor only works on one video and comment and can expire; bad or expired ones return `invalid_cursor` (400).","title":"Cursor"},"description":"Required. Send the `replies_cursor` from a comment, or the `pagination.next_cursor` from the last replies page. A cursor only works on one video and comment and can expire; bad or expired ones return `invalid_cursor` (400)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepliesResponse"},"example":{"video_id":"dQw4w9WgXcQ","comment_id":"Ugzge340dBgB75hWBm54AaABAg","returned_count":3,"replies":[{"comment_id":"Ugzge340dBgB75hWBm54AaABAg.AHE8_QAWJx9AHE9eIiztxR","text":"YOUTUBE AND ONE LIKE WOOHAAAAH","like_count":7200,"dislike_count":null,"timestamp":1753910070,"published_at":"2025-07-30T21:14:30Z","is_pinned":false,"is_favorited":false,"author":"@linganguliguliwatcha","author_id":"UCjFRISlX-LPxiqViJAE3h6Q","author_thumbnail":"https://yt3.ggpht.com/AbGqKNjK9k5tyOqdV7cdXx-GgnGuuGQ5wj8RN42U5YCDvYHT0vaOKXGFahR36iaDPseGN08DjQ=s88-c-k-c0x00ffffff-no-rj","author_url":"https://www.youtube.com/@linganguliguliwatcha","author_is_verified":false,"author_is_uploader":false,"html":null},{"comment_id":"Ugzge340dBgB75hWBm54AaABAg.AHE8_QAWJx9AHEAB_-JmDA","text":"HEY YOUTUBE","like_count":3000,"dislike_count":null,"timestamp":1753910070,"published_at":"2025-07-30T21:14:30Z","is_pinned":false,"is_favorited":false,"author":"@_bugrabilgin","author_id":"UCg9tPtxMOieUEyhSv63uJ4g","author_thumbnail":"https://yt3.ggpht.com/LvMpN24GYYr8w43sGoMeYZYejDPJz_skehI6jm_XGGhfM5YeRa9OOsaplj60LnFNehE79ZxImg=s88-c-k-c0x00ffffff-no-rj","author_url":"https://www.youtube.com/@_bugrabilgin","author_is_verified":false,"author_is_uploader":false,"html":null},{"comment_id":"Ugzge340dBgB75hWBm54AaABAg.AHE8_QAWJx9AHEAOCSlaNN","text":"new comment alert","like_count":2000,"dislike_count":null,"timestamp":1753910070,"published_at":"2025-07-30T21:14:30Z","is_pinned":false,"is_favorited":false,"author":"@NashiraArif","author_id":"UCWrbmlBO2iW7jwhSuvLsgXQ","author_thumbnail":"https://yt3.ggpht.com/ytc/AIdro_n1guDiz8iQIUgFGnmh5VA5PJlNSiWQwX3Ik0ywlPv8JUDRXZiF6wxDvbC7F3YSi1BdlA=s88-c-k-c0x00ffffff-no-rj","author_url":"https://www.youtube.com/@NashiraArif","author_is_verified":false,"author_is_uploader":false,"html":null}],"pagination":{"next_cursor":"eyJ2IjoxLCJ2aWQiOiJkUXc0dzlXZ1hjUSIsImNpZCI6IlVnemdlMzQwZEJnQjc1aFdCbTU0QWFBQkFnIiwidCI6IkVnMFNDMlJSZHpSM09WZG5XR05SR0FZeTFnRUtUMmRsZEY5amIyMXRaVzUwWDNkcGRHaGZjbVZ3YkdsbGMxOXpkSEpsWVcwdExVTm5aMGxuUVZGV1JqZG1VazlDU1VaRFMwRm5SMEZGYVVSUmIweERTV3BuYmpoQlIwVkthVll4VW1oUlFVRWFVQklhVldkNloyVXpOREJrUW1kQ056Vm9WMEp0TlRSQllVRkNRV2NpQWdnQUtoaFZRM1ZCV0VaclozTjNNVXczZUdGRFptNWtOVXBLVDNjeUMyUlJkelIzT1ZkbldHTlJRQUJJTW9JQkFnZ0JLQXBDTDJOdmJXMWxiblF0Y21Wd2JHbGxjeTFwZEdWdExWVm5lbWRsTXpRd1pFSm5RamMxYUZkQ2JUVTBRV0ZCUWtGbiJ9","completion":null}}}}},"400":{"description":"The pagination cursor is malformed, expired, or bound to a different YouTube resource.","content":{"application/json":{"examples":{"invalid_cursor":{"value":{"code":"invalid_cursor","message":"The pagination cursor is invalid.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":2}}},"/v1/youtube/videos/{video_id}/metadata":{"get":{"tags":["YouTube"],"summary":"Get Metadata","description":"Get metadata for a video.\n\nCredits: 3 per request.","operationId":"get_metadata_v1_youtube_videos__video_id__metadata_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms.","examples":["dQw4w9WgXcQ"],"title":"Video Id"},"description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms."},{"name":"fields","in":"query","required":false,"schema":{"description":"Optional comma-separated projection of metadata fields; video_id is always included, and an empty value is treated as omitted. Allowed fields: `age_limit`, `availability`, `categories`, `channel`, `channel_follower_count`, `channel_id`, `channel_is_verified`, `channel_url`, `chapters`, `comment_count`, `concurrent_view_count`, `description`, `duration`, `duration_string`, `fulltitle`, `handle`, `handle_url`, `heatmap`, `height`, `language`, `license`, `like_count`, `live_status`, `location`, `media_type`, `original_url`, `playable_in_embed`, `release_date`, `release_timestamp`, `tags`, `thumbnail`, `thumbnails`, `timestamp`, `title`, `upload_date`, `video_id`, `view_count`, `webpage_url`, `width`.","examples":["title,view_count,duration"],"title":"Fields","type":["string","null"]},"description":"Optional comma-separated projection of metadata fields; video_id is always included, and an empty value is treated as omitted. Allowed fields: `age_limit`, `availability`, `categories`, `channel`, `channel_follower_count`, `channel_id`, `channel_is_verified`, `channel_url`, `chapters`, `comment_count`, `concurrent_view_count`, `description`, `duration`, `duration_string`, `fulltitle`, `handle`, `handle_url`, `heatmap`, `height`, `language`, `license`, `like_count`, `live_status`, `location`, `media_type`, `original_url`, `playable_in_embed`, `release_date`, `release_timestamp`, `tags`, `thumbnail`, `thumbnails`, `timestamp`, `title`, `upload_date`, `video_id`, `view_count`, `webpage_url`, `width`."},{"name":"country","in":"query","required":false,"schema":{"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase.","examples":["BR"],"title":"Country","type":["string","null"]},"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoMetadataResponse"},"example":{"video_id":"dQw4w9WgXcQ","title":"Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","fulltitle":"Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","description":"The official video for “Never Gonna Give You Up” by Rick Astley. \n\nNever: The Autobiography 📚 OUT NOW! \nFollow this link to get your copy and listen to Rick’s ‘Never’ playlist ❤️ #RickAstleyNever\nhttps://linktr.ee/rickastleynever\n\n“Never Gonna Give You Up” was a global smash on its release in July 1987, topping the charts in 25 countries including Rick’s native UK and the US Billboard Hot 100.  It also won the Brit Award for Best single in 1988. Stock Aitken and Waterman wrote and produced the track which was the lead-off single and lead track from Rick’s debut LP “Whenever You Need Somebody”.  The album was itself a UK number one and would go on to sell over 15 million copies worldwide.\n\nThe legendary video was directed by Simon West – who later went on to make Hollywood blockbusters such as Con Air, Lara Croft – Tomb Raider and The Expendables 2.  The video passed the 1bn YouTube views milestone on 28 July 2021.\n\nSubscribe to the official Rick Astley YouTube channel: https://RickAstley.lnk.to/YTSubID\n\nFollow Rick Astley:\nFacebook: https://RickAstley.lnk.to/FBFollowID \nTwitter: https://RickAstley.lnk.to/TwitterID \nInstagram: https://RickAstley.lnk.to/InstagramID \nWebsite: https://RickAstley.lnk.to/storeID \nTikTok: https://RickAstley.lnk.to/TikTokID\n\nListen to Rick Astley:\nSpotify: https://RickAstley.lnk.to/SpotifyID \nApple Music: https://RickAstley.lnk.to/AppleMusicID \nAmazon Music: https://RickAstley.lnk.to/AmazonMusicID \nDeezer: https://RickAstley.lnk.to/DeezerID \n\nLyrics:\nWe’re no strangers to love\nYou know the rules and so do I\nA full commitment’s what I’m thinking of\nYou wouldn’t get this from any other guy\n\nI just wanna tell you how I’m feeling\nGotta make you understand\n\nNever gonna give you up\nNever gonna let you down\nNever gonna run around and desert you\nNever gonna make you cry\nNever gonna say goodbye\nNever gonna tell a lie and hurt you\n\nWe’ve known each other for so long\nYour heart’s been aching but you’re too shy to say it\nInside we both know what’s been going on\nWe know the game and we’re gonna play it\n\nAnd if you ask me how I’m feeling\nDon’t tell me you’re too blind to see\n\nNever gonna give you up\nNever gonna let you down\nNever gonna run around and desert you\nNever gonna make you cry\nNever gonna say goodbye\nNever gonna tell a lie and hurt you\n\n#RickAstley #NeverGonnaGiveYouUp #WheneverYouNeedSomebody #OfficialMusicVideo","duration":213,"duration_string":"3:33","upload_date":"2009-10-25","timestamp":1256453853,"release_timestamp":null,"release_date":null,"view_count":1762072149,"like_count":18934938,"comment_count":2400000,"channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","channel_url":"https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","channel_follower_count":4480000,"channel_is_verified":true,"thumbnail":"https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg","thumbnails":[{"url":"https://i.ytimg.com/vi/dQw4w9WgXcQ/3.jpg","width":null,"height":null},{"url":"https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/3.webp","width":null,"height":null},{"url":"https://i.ytimg.com/vi/dQw4w9WgXcQ/2.jpg","width":null,"height":null}],"width":3840,"height":2160,"categories":["Music"],"tags":["rick astley","Never Gonna Give You Up","nggyu"],"live_status":"not_live","availability":"public","age_limit":0,"playable_in_embed":true,"webpage_url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","original_url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","language":"en","chapters":null,"heatmap":[{"start_time":0,"end_time":2.14,"value":1},{"start_time":2.14,"end_time":4.28,"value":0.41803413402195433},{"start_time":4.28,"end_time":6.42,"value":0.34835825492767886}],"concurrent_view_count":null,"location":null,"license":null,"media_type":"video","handle":"@RickAstleyYT","handle_url":"https://www.youtube.com/@RickAstleyYT"}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":3}}},"/v1/youtube/channels/{channel_id}":{"get":{"tags":["YouTube"],"summary":"Get Channel","description":"Get a channel's profile and statistics.\n\nCredits: 3 per request.","operationId":"get_channel_v1_youtube_channels__channel_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube channel ID, @handle, or full allowed channel URL. Full URLs may use /channel/, /@, /c/, or /user/ and cannot include a content tab or query string.","examples":["UCuAXFkgsw1L7xaCfnd5JJOw"],"title":"Channel Id"},"description":"YouTube channel ID, @handle, or full allowed channel URL. Full URLs may use /channel/, /@, /c/, or /user/ and cannot include a content tab or query string."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelResponse"},"example":{"channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","channel":"Rick Astley","channel_url":"https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","description":"2026 UK & Ireland Reflection Tour🪞😎\n🎟️ Tickets are on sale now. \n\nNew single ‘Waiting On You’ out now. ","channel_follower_count":4480000,"tags":["Official","Rick","Astley"],"thumbnail":"https://yt3.googleusercontent.com/MOWpaiGJdgN4aKMI-NGQLL4jMVP3aDORlQpOBWooi0GSE2TGt4_9ncyepk1pCh-yWQ795AhPbw=s900-c-k-c0x00ffffff-no-rj","thumbnails":[{"url":"https://yt3.googleusercontent.com/MOWpaiGJdgN4aKMI-NGQLL4jMVP3aDORlQpOBWooi0GSE2TGt4_9ncyepk1pCh-yWQ795AhPbw=s900-c-k-c0x00ffffff-no-rj","width":900,"height":900},{"url":"https://yt3.googleusercontent.com/MOWpaiGJdgN4aKMI-NGQLL4jMVP3aDORlQpOBWooi0GSE2TGt4_9ncyepk1pCh-yWQ795AhPbw=s200-c-k-c0x00ffffff-no-rj","width":200,"height":200}],"available_content_types":["videos","shorts","streams"],"content_tab_count":3,"playlist_count":3,"handle":"@RickAstleyYT","handle_url":"https://www.youtube.com/@RickAstleyYT"}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":3}}},"/v1/youtube/channels/{channel_id}/videos":{"get":{"tags":["YouTube"],"summary":"Get Channel Videos","description":"Get recent videos from a channel.\n\nCredits: 3 per request.","operationId":"get_channel_videos_v1_youtube_channels__channel_id__videos_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube channel ID, @handle, or full allowed channel URL. Full URLs may use /channel/, /@, /c/, or /user/ and cannot include a content tab or query string.","examples":["UCuAXFkgsw1L7xaCfnd5JJOw"],"title":"Channel Id"},"description":"YouTube channel ID, @handle, or full allowed channel URL. Full URLs may use /channel/, /@, /c/, or /user/ and cannot include a content tab or query string."},{"name":"content_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ChannelContentType","description":"Channel tab: videos, shorts, or streams. Ignored when cursor is supplied because the cursor preserves the walk's tab.","default":"videos"},"description":"Channel tab: videos, shorts, or streams. Ignored when cursor is supplied because the cursor preserves the walk's tab."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Send the `pagination.next_cursor` from the last page to get the next one. Leave it empty for the first page. The cursor remembers its content type, so `content_type` is ignored. Each request returns one complete upstream page, usually 30 items. Use the same channel reference every time. Long runs stop once the cursor passes 8,000 characters, marked `completion=depth_limit`. Cursors can expire; bad or expired ones return `invalid_cursor` (400).","default":"","title":"Cursor"},"description":"Send the `pagination.next_cursor` from the last page to get the next one. Leave it empty for the first page. The cursor remembers its content type, so `content_type` is ignored. Each request returns one complete upstream page, usually 30 items. Use the same channel reference every time. Long runs stop once the cursor passes 8,000 characters, marked `completion=depth_limit`. Cursors can expire; bad or expired ones return `invalid_cursor` (400)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelVideosResponse"},"example":{"channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","returned_count":3,"videos":[{"video_id":"PXC_PYeB6F8","title":"Rick Astley - Angels On My Side (Live at The O2, London, April 2026)","url":"https://www.youtube.com/watch?v=PXC_PYeB6F8","duration":231,"view_count":37000,"channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","channel_url":"https://www.youtube.com/@RickAstleyYT","channel_is_verified":false,"thumbnail":"https://i.ytimg.com/vi/PXC_PYeB6F8/hqdefault.jpg?sqp=-oaymwEmCKgBEF5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLAIV3c1Sbuw11z5y0-JfXh0-Wtwnw","thumbnails":[{"url":"https://i.ytimg.com/vi/PXC_PYeB6F8/hqdefault.jpg?sqp=-oaymwEmCKgBEF5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLAIV3c1Sbuw11z5y0-JfXh0-Wtwnw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/PXC_PYeB6F8/hqdefault.jpg?sqp=-oaymwEmCMQBEG5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLCRUZlVjO_hBvhKvkSjXO8y0bOLuA","width":196,"height":110},{"url":"https://i.ytimg.com/vi/PXC_PYeB6F8/hqdefault.jpg?sqp=-oaymwEnCPYBEIoBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLDNiGseGdqkO3kHqLNiKCbLTh9mpg","width":246,"height":138}],"live_status":null},{"video_id":"LaOUkDBDjW8","title":"Rick Astley - Dance (Live at The O2, London, April 2026)","url":"https://www.youtube.com/watch?v=LaOUkDBDjW8","duration":234,"view_count":17000,"channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","channel_url":"https://www.youtube.com/@RickAstleyYT","channel_is_verified":false,"thumbnail":"https://i.ytimg.com/vi/LaOUkDBDjW8/hqdefault.jpg?sqp=-oaymwEmCKgBEF5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLDfQKH0kiab36umgaqcNf9y0HSkmw","thumbnails":[{"url":"https://i.ytimg.com/vi/LaOUkDBDjW8/hqdefault.jpg?sqp=-oaymwEmCKgBEF5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLDfQKH0kiab36umgaqcNf9y0HSkmw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/LaOUkDBDjW8/hqdefault.jpg?sqp=-oaymwEmCMQBEG5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLBXfjCy2TuQqs2HZBdHBOvJwyF5kw","width":196,"height":110},{"url":"https://i.ytimg.com/vi/LaOUkDBDjW8/hqdefault.jpg?sqp=-oaymwEnCPYBEIoBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLCICoaro5entkvGNyP6Q8hQEa6vVQ","width":246,"height":138}],"live_status":null},{"video_id":"wvr7-pDJUOA","title":"Rick Astley - Keep Singing (Live at The O2, London, April 2026)","url":"https://www.youtube.com/watch?v=wvr7-pDJUOA","duration":248,"view_count":24000,"channel":"Rick Astley","channel_id":"UCuAXFkgsw1L7xaCfnd5JJOw","channel_url":"https://www.youtube.com/@RickAstleyYT","channel_is_verified":false,"thumbnail":"https://i.ytimg.com/vi/wvr7-pDJUOA/hqdefault.jpg?sqp=-oaymwFACKgBEF5IWvKriqkDMwgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAHwAQH4Af4JgALQBYoCDAgAEAEYRSBAKHIwDw==&rs=AOn4CLAIp0HC32D8PMIsHCXqPuzqJNI5hg","thumbnails":[{"url":"https://i.ytimg.com/vi/wvr7-pDJUOA/hqdefault.jpg?sqp=-oaymwFACKgBEF5IWvKriqkDMwgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAHwAQH4Af4JgALQBYoCDAgAEAEYRSBAKHIwDw==&rs=AOn4CLAIp0HC32D8PMIsHCXqPuzqJNI5hg","width":168,"height":94},{"url":"https://i.ytimg.com/vi/wvr7-pDJUOA/hqdefault.jpg?sqp=-oaymwFACMQBEG5IWvKriqkDMwgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAHwAQH4Af4JgALQBYoCDAgAEAEYRSBAKHIwDw==&rs=AOn4CLDT6RTcSKrj9WnriIQht-WMQ-vILw","width":196,"height":110},{"url":"https://i.ytimg.com/vi/wvr7-pDJUOA/hqdefault.jpg?sqp=-oaymwFBCPYBEIoBSFryq4qpAzMIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB8AEB-AH-CYAC0AWKAgwIABABGEUgQChyMA8=&rs=AOn4CLD8RYMw4diKNQgzmV9SizpFUXbAlw","width":246,"height":138}],"live_status":null}],"pagination":{"next_cursor":"eyJ2IjoxLCJjaGlkIjoiVUN1QVhGa2dzdzFMN3hhQ2ZuZDVKSk93IiwiY3QiOiJ2aWRlb3MiLCJ0IjoiNHFtRnNnTFpDUklZVlVOMVFWaEdhMmR6ZHpGTU4zaGhRMlp1WkRWS1NrOTNHcndKT0dkaFJVSjRjVUpDTTNJdFFtcHlOMEpuYjJ0T2JVWnNUMFJGTUU5RVkzUk5SRUYzVFVNd2VVNUVaR2xNVjBWM1RXMUpkRnBFVW0xT1ZGRXpXbXBSZDA5RVRtcEZkRUZIVVZacmVGWjZSa3BhTUZKWFZua3dNR0pIUmxKT1JYZ3pWbnBzU21KNlJuWmpSV2d6VFVSV1dHRnNaR1ppUmxwVlRqQk9ibVJHVGxST2VrNTBWVVZHWm1OVWFFTmhNSEJaVjBkM05GSXdiSEpUTWtWNVkyeFJNbFF6VW5OWGFtUjJVa1pHTkdReFdtWk5NMVpNVTFSR1dGWkVSakJXTW1oV1kycG9OVk13ZURKYWJURlZVbTFLYlZSVVdtbE5WelY1VVZWNFZsZ3hValZaYkZKTVlrZG5OVlJIT1hOa2JWcFJZbTVHTUdGRlpEVlRWR1F5WldwQ2VXRkdaekZUYWxwaFVsZHJNV1I1TVRGTk0ydzJUakJrWmxac1JtaGxWRTVYWlZaR1VtRlRNWEZoYlVsMFlUTnNjMVJJY0RSVmJXUk5WVlpDUTFaRk9UVk1WVW8yVVRKc1JWRlZZelJsYkVKNFZteE9jbUZIVW10Uk0xWjJWRmN3ZDFwVk5YbFVNV3Q2WTIxS2FsUnRPV2xSYmtKMVVUQXdNazR4UmpKVk1uaEZVMnhzUlZWdGVGVlNSV3gyWTJ0b2FWUklhR3BVU0dONlVXdG9SazlFV205U01taElWbTVPV0dOcVdYaFpiVVpaVkZkR2JFMVdVa1ZUYlRWRVpFVlNSbEp1UlhwaGEyTTFVV3BDYTFOck9EUmlSazVaVjFaYVVtRXljekJhVlhSYVVucE9SbEV3ZERSWk1XTXlUVlpOZWxSWVVscFJWbXhKWld4S2MxVnFUa0pPTURGcllqQlJNMW93VGtSa2EwNXZVVzVHU2xwNmFIbGhNMnN6VjFkdk1HVkhSblpTUkdod1dWaG5kMUpJYUdwUFZtZ3dWbFJPVlZsNlJrOWhla0V4WWpJMU5sUXphSGxhTTBsMFRGUlNUbE51UW1GVlZ6UjNZa2hXU0ZwVmRHWmlWR2hyWVZWR1drNTZWbFZWTUdSWlRrWkNWMk13Y0hSVlZFWldWRE5LZGxJd05WaFhhM2hOVmpKT1IxTkhaelZPUm1SM1QxaEdVMVI2UmxsYU0ydzBUbGRuTW1OSGNFbGhhVEYzVlZSc1IxUnRXbEpaVm14WFZVVTVjV0p1VWxwalJHUkxZbFphYlZkcVZuRmhWVlpvWkd4bk1GVnFWblpWTTJoSlRrUmFTRk5ITlRCVlV6QjBWMjVvZGxSRlJtdGlSbHBQV20wNU1WTkhTbEJWTVd4SlZYa3hTRTVFVWtOVk0wNUZZMGQ0ZW1FeFZtNWxWMlF5Vldwc1RFNUdXbkZVUm1SQ1ZsUm9WMUpzV2tOYVZWSjZaVWhrV0ZsV1JtRmtSRlpSVEZSS1VWTkhhRnBSYlhoV1RWVTFSbUZJV1hwVGJtUk1VMVpXZEU5RlNrNVNWa0p6VFhwV05rNXJOSHBhZWtwMlVXcEtibGt3ZERKV01IUndaVWN4Y0ZKdVRUQlRhbEpVWW1wR2RsWXhRbXhSV0VwVlkza3hkRXhZVmpaWFNFWlZUMWM0ZEZveFNuVmFWMmd3V2tWSk5HSklZekpYUlRsSFdEQk5ORmRWVFRCaFZsSlFXVzVPUjFSRVdUVlJiVlV4VTFob1ZtVkdiRmhWVkVsNFVWZHNXbUZVUmxSVlJrb3paR3RzZFZKVlVuQmtiRkp6V2pGU2FXUldZekpqU0c4MFpHMTBXV1ZVVm5aUFZURjVVMFJhVGxSSE1XMWxSR3hTWWtVMVZXUkliRTVVTTJoUFlrWldNbUY2V1RWTlZYaE5VMGhzTTAxclRuUlNTRXB2VmxoS2NsTnJVbEpYU0d4WVVUTmplVmRIWkU1UFZrSTBVa1p3YUZWRlVUSlZWa1o1VGxWa2QwMXJVakpQUjJnellrVTVVMkZyZUVOYWJuQlJWRmhhVUUxdGNFbFVNRlpHVGxSb2RsWkVUWGhQUlhCVVZERldlbFZyTlRSamEzTTBZMVpDZGxwNmJIWlZSVGxwV2pCSk1WWnRVbkpUUm14SllXeEpXVUpCSlRORUpUTkUiLCJuIjozMCwiY2giOnsiaWQiOiJVQ3VBWEZrZ3N3MUw3eGFDZm5kNUpKT3ciLCJuYW1lIjoiUmljayBBc3RsZXkiLCJ1cmwiOiJodHRwczovL3d3dy55b3V0dWJlLmNvbS9AUmlja0FzdGxleVlUIiwidmVyaWZpZWQiOmZhbHNlfX0","completion":null}}}}},"400":{"description":"The pagination cursor is malformed, expired, or bound to a different YouTube resource.","content":{"application/json":{"examples":{"invalid_cursor":{"value":{"code":"invalid_cursor","message":"The pagination cursor is invalid.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":3}}},"/v1/youtube/videos/{video_id}/subtitles/tracks":{"get":{"tags":["YouTube"],"summary":"Get Subtitle Tracks","description":"List the subtitle tracks available for a video.\n\nCredits: 2 per request.","operationId":"get_subtitle_tracks_v1_youtube_videos__video_id__subtitles_tracks_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms.","examples":["dQw4w9WgXcQ"],"title":"Video Id"},"description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms."},{"name":"country","in":"query","required":false,"schema":{"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase.","examples":["BR"],"title":"Country","type":["string","null"]},"description":"Optional ISO 3166-1 alpha-2 country code, normalized uppercase."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubtitleTracksResponse"},"example":{"video_id":"dQw4w9WgXcQ","manual_count":1,"auto_count":1,"manual":[{"id":"en","language":"en","language_name":"English","formats":["json3","srt","ttml","txt","vtt"]}],"auto":[{"id":"en","language":"en","language_name":"English","formats":["json3","srt","ttml","txt","vtt"]}]}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":2}}},"/v1/youtube/videos/{video_id}/formats":{"get":{"tags":["YouTube"],"summary":"Get Formats","description":"List the available video and audio formats.\n\nCredits: 2 per request.","operationId":"get_formats_v1_youtube_videos__video_id__formats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms.","examples":["dQw4w9WgXcQ"],"title":"Video Id"},"description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormatsResponse"},"example":{"video_id":"dQw4w9WgXcQ","format_count":4,"formats":[{"format_id":"139","format_note":"low","ext":"m4a","protocol":"https","acodec":"mp4a.40.5","vcodec":"none","url":"https://rr2---sn-n4g-uan6.googlevideo.com/videoplayback?expire=1776112930&ei=wgDdae6zEOe-i9oPkLvTsA4&ip=85.170.124.101&id=o-AAshmtQbJlpsH4Ack6KgBU2iNIBKYqyJ19muy6VFKcH2&itag=139&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&cps=1198&met=1776091330%2C&mh=7c&mm=31%2C29&mn=sn-n4g-uan6%2Csn-n4g-jqbek&ms=au%2Crdu&mv=m&mvi=2&pl=24&rms=au%2Cau&initcwndbps=1923750&bui=AUUZDGLsTj_xmn6srJP4P4Kkhnk0jaoAAMJWAlaOBLmiK_4-Y_vFrzOfEf9PewTvrtRFs9hjFWB_zkk3&spc=jlWavdCqRTynwrpZKbUf_oivfAdA2p7VdIslGSihZfTR38L6mA&vprv=1&svpuc=1&mime=audio%2Fmp4&rqh=1&gir=yes&clen=1300631&dur=213.159&lmt=1766955925459591&mt=1776090571&fvip=4&keepalive=yes&fexp=51565116%2C51565682&c=ANDROID_VR&txp=5532534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AHEqNM4wRQIgSrlMhbuiab94NjF3NtbNBanSG1kgbuCEThWGsR-BfXYCIQCYyKjDZAGjqbJYyw--8r8SHYfQeCE3xgaBe1qGX6fVDg%3D%3D&lsparams=cps%2Cmet%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKPqb9aPiipz6vvvpiwUOv-V1nhmHrXr01ykHRwQPYw-AiB1xYp7iFeZEstxAshP9Hq34ZHm2RmSSePevPb8QwmReA%3D%3D","width":null,"height":null,"fps":null,"audio_ext":"m4a","video_ext":"none","vbr":0,"abr":48.813,"tbr":48.813,"resolution":"audio only","aspect_ratio":null,"filesize":1300631,"filesize_approx":1300616,"asr":22050,"audio_channels":2,"quality":2,"has_drm":false,"language":"en","language_preference":-1,"preference":null,"dynamic_range":null,"container":"m4a_dash","source_preference":-1,"format":"139 - audio only (low)"},{"format_id":"160","format_note":"144p","ext":"mp4","protocol":"https","acodec":"none","vcodec":"avc1.4d400c","url":"https://rr2---sn-n4g-uan6.googlevideo.com/videoplayback?expire=1776112930&ei=wgDdae6zEOe-i9oPkLvTsA4&ip=85.170.124.101&id=o-AAshmtQbJlpsH4Ack6KgBU2iNIBKYqyJ19muy6VFKcH2&itag=160&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&cps=1198&met=1776091330%2C&mh=7c&mm=31%2C29&mn=sn-n4g-uan6%2Csn-n4g-jqbek&ms=au%2Crdu&mv=m&mvi=2&pl=24&rms=au%2Cau&initcwndbps=1923750&bui=AUUZDGLsTj_xmn6srJP4P4Kkhnk0jaoAAMJWAlaOBLmiK_4-Y_vFrzOfEf9PewTvrtRFs9hjFWB_zkk3&spc=jlWavdCqRTynwrpZKbUf_oivfAdA2p7VdIslGSihZfTR38L6mA&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=2058142&dur=213.040&lmt=1766961162303498&mt=1776090571&fvip=4&keepalive=yes&fexp=51565116%2C51565682&c=ANDROID_VR&txp=5532534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AHEqNM4wRQIgCxyrIkEa6IjLx5DM7m8bo08fTuZNHMsCpJx50eyr5L8CIQCVqZ4ohx6TNzi9R_3zlpiTSA6sWBKl77MEiQKGcK0myA%3D%3D&lsparams=cps%2Cmet%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKPqb9aPiipz6vvvpiwUOv-V1nhmHrXr01ykHRwQPYw-AiB1xYp7iFeZEstxAshP9Hq34ZHm2RmSSePevPb8QwmReA%3D%3D","width":256,"height":144,"fps":25,"audio_ext":"none","video_ext":"mp4","vbr":77.286,"abr":0,"tbr":77.286,"resolution":"256x144","aspect_ratio":1.78,"filesize":2058142,"filesize_approx":2058126,"asr":null,"audio_channels":null,"quality":0,"has_drm":false,"language":null,"language_preference":-1,"preference":null,"dynamic_range":"SDR","container":"mp4_dash","source_preference":-1,"format":"160 - 256x144 (144p)"},{"format_id":"18","format_note":"360p","ext":"mp4","protocol":"https","acodec":"mp4a.40.2","vcodec":"avc1.42001E","url":"https://rr2---sn-n4g-uan6.googlevideo.com/videoplayback?expire=1776112930&ei=wgDdae6zEOe-i9oPkLvTsA4&ip=85.170.124.101&id=o-AAshmtQbJlpsH4Ack6KgBU2iNIBKYqyJ19muy6VFKcH2&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&cps=1198&met=1776091330%2C&mh=7c&mm=31%2C29&mn=sn-n4g-uan6%2Csn-n4g-jqbek&ms=au%2Crdu&mv=m&mvi=2&pl=24&rms=au%2Cau&initcwndbps=1923750&bui=AUUZDGIwhjS-eYBKhTRFkp3tJC-cE7Vycfcgnfss5oBmwV1L_STG8QslCBGG36znqKHSu23iFoqnIp-N&spc=jlWavfqjfzmVyrhhAbRdxqCyPgIqxJ7VRI_NGjCoE-RYxsDSh2H2VUfL0g&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&cnr=14&ratebypass=yes&dur=213.089&lmt=1766960953317159&mt=1776090571&fvip=4&fexp=51565116%2C51565682&c=ANDROID_VR&txp=5538534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Ccnr%2Cratebypass%2Cdur%2Clmt&sig=AHEqNM4wRgIhAIfL6RRkMKWlTvUIp8TEsBoJuNG9BqGhq63TGiNpIyMAAiEAqczL-_jATNIjSwXjnGI7oFIhgIjO7cdET0C0y9nfZdk%3D&lsparams=cps%2Cmet%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKPqb9aPiipz6vvvpiwUOv-V1nhmHrXr01ykHRwQPYw-AiB1xYp7iFeZEstxAshP9Hq34ZHm2RmSSePevPb8QwmReA%3D%3D","width":640,"height":360,"fps":25,"audio_ext":"none","video_ext":"mp4","vbr":null,"abr":null,"tbr":444.226,"resolution":"640x360","aspect_ratio":1.78,"filesize":null,"filesize_approx":11832459,"asr":44100,"audio_channels":2,"quality":6,"has_drm":false,"language":"en","language_preference":-1,"preference":null,"dynamic_range":"SDR","container":null,"source_preference":-1,"format":"18 - 640x360 (360p)"},{"format_id":"137","format_note":"1080p","ext":"mp4","protocol":"https","acodec":"none","vcodec":"avc1.640028","url":"https://rr2---sn-n4g-uan6.googlevideo.com/videoplayback?expire=1776112930&ei=wgDdae6zEOe-i9oPkLvTsA4&ip=85.170.124.101&id=o-AAshmtQbJlpsH4Ack6KgBU2iNIBKYqyJ19muy6VFKcH2&itag=137&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&cps=1198&met=1776091330%2C&mh=7c&mm=31%2C29&mn=sn-n4g-uan6%2Csn-n4g-jqbek&ms=au%2Crdu&mv=m&mvi=2&pl=24&rms=au%2Cau&initcwndbps=1923750&bui=AUUZDGLsTj_xmn6srJP4P4Kkhnk0jaoAAMJWAlaOBLmiK_4-Y_vFrzOfEf9PewTvrtRFs9hjFWB_zkk3&spc=jlWavdCqRTynwrpZKbUf_oivfAdA2p7VdIslGSihZfTR38L6mA&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=80911999&dur=213.040&lmt=1766957926174250&mt=1776090571&fvip=4&keepalive=yes&fexp=51565116%2C51565682&c=ANDROID_VR&txp=5532534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AHEqNM4wRgIhAOf-UOWwhOz6GtJwkxxWOjTaQQvCelVFomZ6nDIn_AKcAiEArMuba_7DVjQ2idD-1nxyi-OSotFJKb4rfFuO-04U_BU%3D&lsparams=cps%2Cmet%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKPqb9aPiipz6vvvpiwUOv-V1nhmHrXr01ykHRwQPYw-AiB1xYp7iFeZEstxAshP9Hq34ZHm2RmSSePevPb8QwmReA%3D%3D","width":1920,"height":1080,"fps":25,"audio_ext":"none","video_ext":"mp4","vbr":3038.377,"abr":0,"tbr":3038.377,"resolution":"1920x1080","aspect_ratio":1.78,"filesize":80911999,"filesize_approx":80911979,"asr":null,"audio_channels":null,"quality":9,"has_drm":false,"language":null,"language_preference":-1,"preference":null,"dynamic_range":"SDR","container":"mp4_dash","source_preference":-1,"format":"137 - 1920x1080 (1080p)"}]}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":2}}},"/v1/youtube/videos/{video_id}/heatmap":{"get":{"tags":["YouTube"],"summary":"Get Heatmap","description":"Get the replay heatmap for a video.\n\nCredits: 2 per request.","operationId":"get_heatmap_v1_youtube_videos__video_id__heatmap_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms.","examples":["dQw4w9WgXcQ"],"title":"Video Id"},"description":"YouTube video ID or a supported video URL, normalized to the eleven-character video ID. URLs may use watch?v=, youtu.be/, shorts/, embed/, or live/ forms."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeatmapResponse"},"example":{"video_id":"dQw4w9WgXcQ","heatmap":[{"start_time":0,"end_time":2.14,"value":1},{"start_time":2.14,"end_time":4.28,"value":0.41803413402195433},{"start_time":4.28,"end_time":6.42,"value":0.34835825492767886}]}}}},"401":{"description":"The API key is required, invalid, or inactive (disabled or revoked); the response message identifies the condition.","content":{"application/json":{"examples":{"unauthenticated":{"value":{"code":"unauthenticated","message":"API key is required.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Not enough credits for this request.","content":{"application/json":{"examples":{"insufficient_credits":{"value":{"code":"insufficient_credits","message":"You have insufficient credits for this request.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"No active subscription grants access to this product. The YouTube resource exists but is not publicly accessible (private, age-gated, members-only, or region-blocked).","content":{"application/json":{"examples":{"forbidden":{"value":{"code":"forbidden","message":"You do not have access to this resource.","request_id":"req_01HZX0000000"}},"resource_forbidden":{"value":{"code":"resource_forbidden","message":"The requested resource is not publicly accessible.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested YouTube resource or subtitle track was not found.","content":{"application/json":{"examples":{"not_found":{"value":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"examples":{"invalid_request":{"value":{"code":"invalid_request","message":"Request validation failed.","request_id":"req_01HZX0000000","details":[{"type":"missing","loc":["query","query"],"msg":"Field required"}]}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/json":{"examples":{"rate_limited":{"value":{"code":"rate_limited","message":"Rate limit exceeded.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Unexpected failure processing the request.","content":{"application/json":{"examples":{"internal_error":{"value":{"code":"internal_error","message":"An internal error occurred.","request_id":"req_01HZX0000000"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"The YouTube upstream service is unavailable or returned an invalid response. YouTube is temporarily blocking upstream access.","content":{"application/json":{"examples":{"upstream_unavailable":{"value":{"code":"upstream_unavailable","message":"Upstream service is temporarily unavailable.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_response_invalid":{"value":{"code":"upstream_response_invalid","message":"Upstream returned an unexpected response.","request_id":"req_01HZX0000000","domain":"youtube"}},"upstream_blocked":{"value":{"code":"upstream_blocked","message":"Upstream access is blocked right now.","request_id":"req_01HZX0000000","domain":"youtube"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-tapline-credit-cost":{"credits":2}}}},"components":{"schemas":{"SearchSort":{"type":"string","enum":["relevance","upload_date","view_count","rating"],"title":"SearchSort","x-tags":["YouTube"]},"UploadDate":{"type":"string","enum":["last_hour","today","this_week","this_month","this_year"],"title":"UploadDate","x-tags":["YouTube"]},"SearchType":{"type":"string","enum":["video","channel","playlist","movie"],"title":"SearchType","x-tags":["YouTube"]},"VideoDuration":{"type":"string","enum":["under_4_min","4_to_20_min","over_20_min"],"title":"VideoDuration","x-tags":["YouTube"]},"Feature-Input":{"type":"string","enum":["live","4k","hd","subtitles","creative_commons","360","vr180","3d","hdr","location","purchased"],"title":"Feature","x-tags":["YouTube"]},"app__scrapers__youtube__client__response_types__SearchResponse":{"properties":{"query":{"type":"string","title":"Query"},"returned_count":{"type":"integer","title":"Returned Count"},"results":{"items":{"$ref":"#/components/schemas/SearchResultItem"},"type":"array","title":"Results"},"pagination":{"$ref":"#/components/schemas/CursorPagination"}},"type":"object","required":["query","returned_count","results","pagination"],"title":"SearchResponse","x-tags":["YouTube"]},"ErrorResponse":{"properties":{"code":{"$ref":"#/components/schemas/PublicError"},"message":{"type":"string","title":"Message"},"request_id":{"type":"string","title":"Request Id"},"domain":{"title":"Domain","type":["string","null"]},"details":{"title":"Details","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":["array","null"]},"upgrade_url":{"title":"Upgrade Url","type":["string","null"]}},"type":"object","required":["code","message","request_id"],"title":"ErrorResponse","x-tags":["YouTube"]},"ChannelContentType":{"type":"string","enum":["videos","shorts","streams"],"title":"ChannelContentType","x-tags":["YouTube"]},"ChannelVideosResponse":{"properties":{"channel_id":{"type":"string","title":"Channel Id"},"returned_count":{"type":"integer","title":"Returned Count"},"videos":{"items":{"$ref":"#/components/schemas/VideoListItem"},"type":"array","title":"Videos"},"pagination":{"$ref":"#/components/schemas/CursorPagination"}},"type":"object","required":["channel_id","returned_count","videos","pagination"],"title":"ChannelVideosResponse","x-tags":["YouTube"]},"ChannelResponse":{"properties":{"channel_id":{"type":"string","title":"Channel Id"},"channel":{"title":"Channel","type":["string","null"]},"channel_url":{"title":"Channel Url","type":["string","null"]},"handle":{"title":"Handle","type":["string","null"]},"handle_url":{"title":"Handle Url","type":["string","null"]},"description":{"title":"Description","type":["string","null"]},"channel_follower_count":{"title":"Channel Follower Count","type":["integer","null"]},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"thumbnail":{"title":"Thumbnail","type":["string","null"]},"thumbnails":{"items":{"$ref":"#/components/schemas/ThumbnailItem"},"type":"array","title":"Thumbnails"},"available_content_types":{"title":"Available Content Types","description":"Content tabs available on the channel: Videos, Shorts, and Streams. Null when the yt-dlp fallback cannot identify individual tabs.","items":{"$ref":"#/components/schemas/ChannelContentType"},"type":["array","null"]},"content_tab_count":{"title":"Content Tab Count","description":"Number of available Videos, Shorts, and Streams content tabs.","type":["integer","null"]},"playlist_count":{"title":"Playlist Count","description":"Deprecated alias for content_tab_count. This counts content tabs, not user-created playlists.","deprecated":true,"type":["integer","null"]}},"type":"object","required":["channel_id","channel","channel_url","handle","handle_url","description","channel_follower_count","tags","thumbnail","thumbnails","available_content_types","content_tab_count","playlist_count"],"title":"ChannelResponse","x-tags":["YouTube"]},"PlaylistResponse":{"properties":{"playlist_id":{"type":"string","title":"Playlist Id"},"title":{"title":"Title","type":["string","null"]},"description":{"title":"Description","type":["string","null"]},"channel":{"title":"Channel","type":["string","null"]},"channel_id":{"title":"Channel Id","type":["string","null"]},"channel_url":{"title":"Channel Url","type":["string","null"]},"handle":{"title":"Handle","type":["string","null"]},"handle_url":{"title":"Handle Url","type":["string","null"]},"thumbnail":{"title":"Thumbnail","type":["string","null"]},"thumbnails":{"items":{"$ref":"#/components/schemas/ThumbnailItem"},"type":"array","title":"Thumbnails"},"view_count":{"title":"View Count","type":["integer","null"]},"modified_date":{"title":"Modified Date","type":["string","null"]},"total_count":{"title":"Total Count","type":["integer","null"]},"webpage_url":{"title":"Webpage Url","type":["string","null"]},"returned_count":{"type":"integer","title":"Returned Count"},"entries":{"items":{"$ref":"#/components/schemas/VideoListItem"},"type":"array","title":"Entries"}},"type":"object","required":["playlist_id","title","description","channel","channel_id","channel_url","handle","handle_url","thumbnail","thumbnails","view_count","modified_date","total_count","webpage_url","returned_count","entries"],"title":"PlaylistResponse","x-tags":["YouTube"]},"VideoMetadataResponse":{"properties":{"video_id":{"type":"string","title":"Video Id"},"title":{"title":"Title","type":["string","null"]},"fulltitle":{"title":"Fulltitle","type":["string","null"]},"description":{"title":"Description","type":["string","null"]},"duration":{"title":"Duration","type":["integer","null"]},"duration_string":{"title":"Duration String","type":["string","null"]},"upload_date":{"title":"Upload Date","type":["string","null"]},"timestamp":{"title":"Timestamp","type":["integer","null"]},"release_timestamp":{"title":"Release Timestamp","type":["integer","null"]},"release_date":{"title":"Release Date","type":["string","null"]},"view_count":{"title":"View Count","type":["integer","null"]},"like_count":{"title":"Like Count","type":["integer","null"]},"comment_count":{"title":"Comment Count","type":["integer","null"]},"handle":{"title":"Handle","type":["string","null"]},"handle_url":{"title":"Handle Url","type":["string","null"]},"channel":{"title":"Channel","type":["string","null"]},"channel_id":{"title":"Channel Id","type":["string","null"]},"channel_url":{"title":"Channel Url","type":["string","null"]},"channel_follower_count":{"title":"Channel Follower Count","type":["integer","null"]},"channel_is_verified":{"title":"Channel Is Verified","type":["boolean","null"]},"thumbnail":{"title":"Thumbnail","type":["string","null"]},"thumbnails":{"items":{"$ref":"#/components/schemas/ThumbnailItem"},"type":"array","title":"Thumbnails"},"width":{"title":"Width","type":["integer","null"]},"height":{"title":"Height","type":["integer","null"]},"categories":{"title":"Categories","items":{"type":"string"},"type":["array","null"]},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"live_status":{"anyOf":[{"$ref":"#/components/schemas/LiveStatus"},{"type":"null"}]},"availability":{"anyOf":[{"$ref":"#/components/schemas/Availability"},{"type":"null"}]},"age_limit":{"title":"Age Limit","type":["integer","null"]},"playable_in_embed":{"title":"Playable In Embed","type":["boolean","null"]},"webpage_url":{"title":"Webpage Url","type":["string","null"]},"original_url":{"title":"Original Url","type":["string","null"]},"language":{"title":"Language","type":["string","null"]},"chapters":{"title":"Chapters","items":{"$ref":"#/components/schemas/ChapterItem"},"type":["array","null"]},"heatmap":{"title":"Heatmap","items":{"$ref":"#/components/schemas/HeatmapItem"},"type":["array","null"]},"concurrent_view_count":{"title":"Concurrent View Count","type":["integer","null"]},"location":{"title":"Location","type":["string","null"]},"license":{"title":"License","type":["string","null"]},"media_type":{"anyOf":[{"$ref":"#/components/schemas/MediaType"},{"type":"null"}]}},"type":"object","required":["video_id"],"title":"VideoMetadataResponse","x-tags":["YouTube"]},"SubtitleTracksResponse":{"properties":{"video_id":{"type":"string","title":"Video Id"},"manual_count":{"type":"integer","title":"Manual Count"},"auto_count":{"type":"integer","title":"Auto Count"},"manual":{"items":{"$ref":"#/components/schemas/SubtitleTrackItem"},"type":"array","title":"Manual"},"auto":{"items":{"$ref":"#/components/schemas/SubtitleTrackItem"},"type":"array","title":"Auto"}},"type":"object","required":["video_id","manual_count","auto_count","manual","auto"],"title":"SubtitleTracksResponse","x-tags":["YouTube"]},"SubtitleFormat":{"type":"string","enum":["srt","vtt","json3","ttml","txt"],"title":"SubtitleFormat","x-tags":["YouTube"]},"SubtitleSource":{"type":"string","enum":["any","manual","auto"],"title":"SubtitleSource","x-tags":["YouTube"]},"SubtitleResponse":{"properties":{"transcript":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/Json3Transcript"}],"title":"Transcript"},"language":{"type":"string","title":"Language"},"track_id":{"type":"string","title":"Track Id"},"is_auto_generated":{"type":"boolean","title":"Is Auto Generated"},"metadata":{"$ref":"#/components/schemas/SubtitleMetadata"}},"type":"object","required":["transcript","language","track_id","is_auto_generated","metadata"],"title":"SubtitleResponse","x-tags":["YouTube"]},"SubtitleNotFoundResponse":{"properties":{"code":{"$ref":"#/components/schemas/PublicError"},"message":{"type":"string","title":"Message"},"request_id":{"type":"string","title":"Request Id"},"domain":{"title":"Domain","type":["string","null"]},"details":{"title":"Details","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":["array","null"]},"upgrade_url":{"title":"Upgrade Url","type":["string","null"]},"available_languages":{"anyOf":[{"$ref":"#/components/schemas/AvailableSubtitleLanguages"},{"type":"null"}]}},"type":"object","required":["code","message","request_id"],"title":"SubtitleNotFoundResponse","x-tags":["YouTube"]},"RepliesResponse":{"properties":{"video_id":{"type":"string","title":"Video Id"},"comment_id":{"type":"string","title":"Comment Id"},"returned_count":{"type":"integer","title":"Returned Count"},"replies":{"items":{"$ref":"#/components/schemas/CommentItem"},"type":"array","title":"Replies"},"pagination":{"$ref":"#/components/schemas/CursorPagination"}},"type":"object","required":["video_id","comment_id","returned_count","replies","pagination"],"title":"RepliesResponse","x-tags":["YouTube"]},"CommentSortOrder":{"type":"string","enum":["top","new"],"title":"CommentSortOrder","x-tags":["YouTube"]},"CommentsResponse":{"properties":{"video_id":{"type":"string","title":"Video Id"},"returned_count":{"type":"integer","title":"Returned Count"},"threads":{"items":{"$ref":"#/components/schemas/CommentThread"},"type":"array","title":"Threads"},"pagination":{"$ref":"#/components/schemas/CursorPagination"}},"type":"object","required":["video_id","returned_count","threads","pagination"],"title":"CommentsResponse","x-tags":["YouTube"]},"FormatsResponse":{"properties":{"video_id":{"type":"string","title":"Video Id"},"format_count":{"type":"integer","title":"Format Count"},"formats":{"items":{"$ref":"#/components/schemas/FormatItem"},"type":"array","title":"Formats"}},"type":"object","required":["video_id","format_count","formats"],"title":"FormatsResponse","x-tags":["YouTube"]},"HeatmapResponse":{"properties":{"video_id":{"type":"string","title":"Video Id"},"heatmap":{"title":"Heatmap","items":{"$ref":"#/components/schemas/HeatmapItem"},"type":["array","null"]}},"type":"object","required":["video_id","heatmap"],"title":"HeatmapResponse","x-tags":["YouTube"]},"HeatmapItem":{"properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"value":{"type":"number","title":"Value"}},"type":"object","required":["start_time","end_time","value"],"title":"HeatmapItem","x-tags":["YouTube"]},"FormatItem":{"properties":{"format_id":{"type":"string","title":"Format Id"},"format_note":{"type":"string","title":"Format Note"},"ext":{"$ref":"#/components/schemas/Ext"},"protocol":{"$ref":"#/components/schemas/Protocol"},"acodec":{"type":"string","title":"Acodec"},"vcodec":{"type":"string","title":"Vcodec"},"url":{"type":"string","title":"Url"},"width":{"title":"Width","type":["integer","null"]},"height":{"title":"Height","type":["integer","null"]},"fps":{"title":"Fps","type":["number","null"]},"audio_ext":{"$ref":"#/components/schemas/AudioExt"},"video_ext":{"$ref":"#/components/schemas/VideoExt"},"vbr":{"title":"Vbr","type":["number","null"]},"abr":{"title":"Abr","type":["number","null"]},"tbr":{"title":"Tbr","type":["number","null"]},"resolution":{"type":"string","title":"Resolution"},"aspect_ratio":{"title":"Aspect Ratio","type":["number","null"]},"filesize":{"title":"Filesize","type":["integer","null"]},"filesize_approx":{"title":"Filesize Approx","type":["integer","null"]},"asr":{"title":"Asr","type":["integer","null"]},"audio_channels":{"title":"Audio Channels","type":["integer","null"]},"quality":{"title":"Quality","type":["integer","null"]},"has_drm":{"title":"Has Drm","type":["boolean","null"]},"language":{"title":"Language","type":["string","null"]},"language_preference":{"title":"Language Preference","type":["integer","null"]},"preference":{"title":"Preference","type":["integer","null"]},"dynamic_range":{"anyOf":[{"$ref":"#/components/schemas/DynamicRange"},{"type":"null"}]},"container":{"anyOf":[{"$ref":"#/components/schemas/Container"},{"type":"null"}]},"source_preference":{"title":"Source Preference","type":["integer","null"]},"format":{"type":"string","title":"Format"}},"type":"object","title":"FormatItem","x-tags":["YouTube"]},"Ext":{"type":"string","enum":["mp4","m4a","webm","mhtml"],"title":"Ext","x-tags":["YouTube"]},"Protocol":{"type":"string","enum":["https","mhtml","m3u8_native","http_dash_segments"],"title":"Protocol","x-tags":["YouTube"]},"AudioExt":{"type":"string","enum":["m4a","webm","none"],"title":"AudioExt","x-tags":["YouTube"]},"VideoExt":{"type":"string","enum":["mp4","webm","none"],"title":"VideoExt","x-tags":["YouTube"]},"DynamicRange":{"type":"string","enum":["SDR","HDR10","HDR10+","HDR12","HLG","DV"],"title":"DynamicRange","x-tags":["YouTube"]},"Container":{"type":"string","enum":["m4a_dash","mp4_dash","webm_dash"],"title":"Container","x-tags":["YouTube"]},"CommentThread":{"properties":{"comment":{"$ref":"#/components/schemas/CommentItem"},"replies_cursor":{"title":"Replies Cursor","type":["string","null"]}},"type":"object","required":["comment","replies_cursor"],"title":"CommentThread","x-tags":["YouTube"]},"CursorPagination":{"properties":{"next_cursor":{"title":"Next Cursor","type":["string","null"]},"completion":{"anyOf":[{"type":"string","enum":["exhausted","depth_limit"]},{"type":"null"}],"title":"Completion"}},"type":"object","required":["next_cursor","completion"],"title":"CursorPagination","x-tags":["YouTube"]},"CommentItem":{"properties":{"comment_id":{"title":"Comment Id","type":["string","null"]},"text":{"title":"Text","type":["string","null"]},"like_count":{"title":"Like Count","type":["integer","null"]},"dislike_count":{"title":"Dislike Count","type":["integer","null"]},"timestamp":{"title":"Timestamp","type":["integer","null"]},"published_at":{"title":"Published At","type":["string","null"]},"is_pinned":{"title":"Is Pinned","type":["boolean","null"]},"is_favorited":{"title":"Is Favorited","type":["boolean","null"]},"author":{"title":"Author","type":["string","null"]},"author_id":{"title":"Author Id","type":["string","null"]},"author_thumbnail":{"title":"Author Thumbnail","type":["string","null"]},"author_url":{"title":"Author Url","type":["string","null"]},"author_is_verified":{"title":"Author Is Verified","type":["boolean","null"]},"author_is_uploader":{"title":"Author Is Uploader","type":["boolean","null"]},"html":{"title":"Html","type":["string","null"]}},"type":"object","required":["comment_id","text","like_count","dislike_count","timestamp","published_at","is_pinned","is_favorited","author","author_id","author_thumbnail","author_url","author_is_verified","author_is_uploader","html"],"title":"CommentItem","x-tags":["YouTube"]},"PublicError":{"type":"string","enum":["blocked","concurrency_exceeded","timeout","extraction_failed","upstream_blocked","upstream_unavailable","upstream_response_invalid","invalid_url_scheme","invalid_url_host","unauthenticated","forbidden","resource_forbidden","not_found","endpoint_retired","rate_limited","invalid_request","invalid_cursor","insufficient_credits","internal_error","demo_input_not_allowed","turnstile_failed","turnstile_unavailable"],"title":"PublicError","x-tags":["YouTube"]},"ErrorDetail":{"properties":{"type":{"title":"Type","type":["string","null"]},"loc":{"title":"Loc","items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":["array","null"]},"msg":{"title":"Msg","type":["string","null"]},"input":{"anyOf":[{},{"type":"null"}],"title":"Input"},"ctx":{"title":"Ctx","additionalProperties":true,"type":["object","null"]}},"type":"object","title":"ErrorDetail","x-tags":["YouTube"]},"AvailableSubtitleLanguages":{"properties":{"manual":{"items":{"type":"string"},"type":"array","title":"Manual"},"auto":{"items":{"type":"string"},"type":"array","title":"Auto"}},"type":"object","required":["manual","auto"],"title":"AvailableSubtitleLanguages","description":"Subtitle language codes the video has. Only on YouTube subtitle 404s.","x-tags":["YouTube"]},"Json3Transcript":{"properties":{"wireMagic":{"type":"string","title":"Wiremagic"},"pens":{"items":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"array","title":"Pens"},"wsWinStyles":{"items":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"array","title":"Wswinstyles"},"wpWinPositions":{"items":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"array","title":"Wpwinpositions"},"events":{"items":{"$ref":"#/components/schemas/Json3Event"},"type":"array","title":"Events"}},"type":"object","title":"Json3Transcript","x-tags":["YouTube"]},"SubtitleMetadata":{"properties":{"video_id":{"type":"string","title":"Video Id"},"title":{"title":"Title","type":["string","null"]},"channel":{"title":"Channel","type":["string","null"]},"channel_id":{"title":"Channel Id","type":["string","null"]},"duration":{"title":"Duration","type":["integer","null"]}},"type":"object","required":["video_id","title","channel","channel_id","duration"],"title":"SubtitleMetadata","x-tags":["YouTube"]},"Json3Event":{"properties":{"tStartMs":{"type":"integer","title":"Tstartms"},"dDurationMs":{"type":"integer","title":"Ddurationms"},"id":{"type":"integer","title":"Id"},"wWinId":{"type":"integer","title":"Wwinid"},"wpWinPosId":{"type":"integer","title":"Wpwinposid"},"wsWinStyleId":{"type":"integer","title":"Wswinstyleid"},"aAppend":{"type":"integer","title":"Aappend"},"segs":{"items":{"$ref":"#/components/schemas/Json3Segment"},"type":"array","title":"Segs"}},"type":"object","title":"Json3Event","x-tags":["YouTube"]},"Json3Segment":{"properties":{"utf8":{"type":"string","title":"Utf8"},"tOffsetMs":{"type":"integer","title":"Toffsetms"},"acAsrConf":{"type":"integer","title":"Acasrconf"},"isSpeakerChange":{"type":"integer","title":"Isspeakerchange"}},"type":"object","title":"Json3Segment","x-tags":["YouTube"]},"SubtitleTrackItem":{"properties":{"id":{"type":"string","title":"Id"},"language":{"type":"string","title":"Language"},"language_name":{"title":"Language Name","type":["string","null"]},"formats":{"items":{"type":"string"},"type":"array","title":"Formats"}},"type":"object","required":["id","language","language_name","formats"],"title":"SubtitleTrackItem","x-tags":["YouTube"]},"ThumbnailItem":{"properties":{"url":{"type":"string","title":"Url"},"width":{"title":"Width","type":["integer","null"]},"height":{"title":"Height","type":["integer","null"]}},"type":"object","required":["url","width","height"],"title":"ThumbnailItem","x-tags":["YouTube"]},"LiveStatus":{"type":"string","enum":["is_live","is_upcoming","was_live","post_live","not_live"],"title":"LiveStatus","x-tags":["YouTube"]},"Availability":{"type":"string","enum":["public","unlisted","needs_auth","premium_only","subscriber_only","private"],"title":"Availability","x-tags":["YouTube"]},"ChapterItem":{"properties":{"start_time":{"type":"number","title":"Start Time"},"end_time":{"type":"number","title":"End Time"},"title":{"type":"string","title":"Title"}},"type":"object","required":["start_time","end_time","title"],"title":"ChapterItem","x-tags":["YouTube"]},"MediaType":{"type":"string","enum":["video","short","clip","livestream"],"title":"MediaType","x-tags":["YouTube"]},"VideoListItem":{"properties":{"video_id":{"title":"Video Id","type":["string","null"]},"title":{"title":"Title","type":["string","null"]},"url":{"title":"Url","type":["string","null"]},"duration":{"title":"Duration","type":["integer","null"]},"view_count":{"title":"View Count","type":["integer","null"]},"channel":{"title":"Channel","type":["string","null"]},"channel_id":{"title":"Channel Id","type":["string","null"]},"channel_url":{"title":"Channel Url","type":["string","null"]},"thumbnail":{"title":"Thumbnail","type":["string","null"]},"thumbnails":{"title":"Thumbnails","items":{"$ref":"#/components/schemas/ThumbnailItem"},"type":["array","null"]},"live_status":{"anyOf":[{"$ref":"#/components/schemas/LiveStatus"},{"type":"null"}]},"channel_is_verified":{"title":"Channel Is Verified","type":["boolean","null"]}},"type":"object","required":["video_id","title","url","view_count","channel","channel_id","channel_url","thumbnail","thumbnails","live_status","channel_is_verified"],"title":"VideoListItem","x-tags":["YouTube"]},"SearchResultItem":{"properties":{"result_type":{"$ref":"#/components/schemas/SearchResultType"},"id":{"title":"Id","type":["string","null"]},"title":{"title":"Title","type":["string","null"]},"url":{"title":"Url","type":["string","null"]},"duration":{"title":"Duration","type":["integer","null"]},"view_count":{"title":"View Count","type":["integer","null"]},"channel":{"title":"Channel","type":["string","null"]},"channel_id":{"title":"Channel Id","type":["string","null"]},"channel_url":{"title":"Channel Url","type":["string","null"]},"thumbnail":{"title":"Thumbnail","type":["string","null"]},"thumbnails":{"title":"Thumbnails","items":{"$ref":"#/components/schemas/ThumbnailItem"},"type":["array","null"]},"description":{"title":"Description","type":["string","null"]},"live_status":{"anyOf":[{"$ref":"#/components/schemas/LiveStatus"},{"type":"null"}]},"channel_is_verified":{"title":"Channel Is Verified","type":["boolean","null"]}},"type":"object","required":["result_type","id","title","url","duration","view_count","channel","channel_id","channel_url","thumbnail","thumbnails","description","live_status","channel_is_verified"],"title":"SearchResultItem","x-tags":["YouTube"]},"SearchResultType":{"type":"string","enum":["video","channel","playlist","movie"],"title":"SearchResultType","x-tags":["YouTube"]}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"tags":[{"name":"YouTube"}]}