YouTube scraper API

Scrape YouTube Data
At Scale

Get transcripts, video metadata, search results, comments, channels, playlists, formats, and engagement data from public YouTube pages through one documented REST API.

  • 500 free API credits included
  • No payment card required
  • Failed requests cost 0 credits
GET/v1/youtube/videos/{video_id}/subtitles
{
  "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",
  "is_auto_generated": false,
  "metadata": {
    "video_id": "dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "channel": "Rick Astley",
    "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
    "duration": 213
  }
}
Example response

Try it before signup

Run a live request below with no account or API key.

Built for coding agents

Use the OpenAPI contract or copy cURL, Python, and TypeScript examples.

99.95% successful requests

All-time request success. Failed requests do not use credits.

/ 01endpoints

Ten endpoints.
One API key.

Every response is normalized JSON with a documented schema that stays stable even when YouTube's pages change. Endpoints cost 2 credits, except channel info at 3.

GETTranscript2 credits
GETVideo Metadata2 credits
GETVideo Search2 credits
GETSubtitle Tracks2 credits
GETChannel Info3 credits
GETChannel Videos2 credits
GETPlaylist2 credits
GETComments2 credits
GETVideo Formats2 credits
GETEngagement Heatmap2 credits
/ 02try it live

Run a live request.
No account needed.

Change any input and send a real request. The response is exactly what your code receives in production.

Transcript

Read-only · current public data

Transcript

Use Try the API to fetch a live, normalized response from the Tapline API.

Run a request to fetch a live response.
Current data
Fresh public data for each request.
Stable schemas
Consistent response shapes by endpoint.
Documentation
Examples and client snippets for each endpoint.
/ 03pricing

Start free.
Scale when you need to.

Use one credit pool across every live Tapline API. Upgrade only when you need more requests or concurrency.

Free
Try the API with real data
Free
no card required
Up to 250 requests
500 free API creditsAll endpointsNo card required
60 requests/min
Starter
Side projects and prototypes
$39 /mo
billed $468/yr
Up to 50,000 requests/mo
100,000 credits / month~$0.39 / 1,000 creditsAll endpointsEmail support
5 req/s · 5 concurrent
Most popular
Growth
Best for production workloads
$159 /mo
billed $1,908/yr
Up to 500,000 requests/mo
1,000,000 credits / month~$0.16 / 1,000 creditsAll endpointsPriority support
25 req/s · 20 concurrent
Pro
Pricing engines and data platforms
$399 /mo
billed $4,788/yr
Up to 2,000,000 requests/mo
4,000,000 credits / month~$0.10 / 1,000 creditsAll endpointsPriority support
50 req/s · 50 concurrent
/ 04questions

Questions before you ship.

How do I get access?

Sign up to get 500 free API credits with no card required, then create an API key in the dashboard. Send it in the X-API-Key header and you can make your first request in under a minute.

What counts as one request?

One HTTP call to one endpoint. Each request costs 2 credits, except channel info at 3, regardless of how many rows it returns. A search returning 10 results is still one request.

Do YouTube calls share credits with other Tapline APIs?

Yes. Your plan has one credit pool shared across every live Tapline API.

How many results does each endpoint return?

Search returns 10 results by default, comments 20, channel videos 30, and playlists up to 50; use the limit parameter to request a different amount. Metadata, transcript, subtitle tracks, formats, heatmap, and channel info are single-record endpoints.

Do failed requests cost anything?

No. Credits are charged only when a call reaches its target and returns data.

Is the data live or cached?

Calls return the current state at request time. Identical requests within a short window may be served from a brief cache.

Is Tapline affiliated with YouTube?

No. Tapline is independent. Data is sourced from publicly visible YouTube pages.

What happens when I hit the YouTube Data API quota?

The official API allocates 10,000 units a day across most endpoints plus a separate 100 search calls, and going above the default requires a compliance audit. Tapline meters the same work in credits against a monthly pool with no daily ceiling, so raising your limit is a plan change rather than an application.

Make your first request today.

Sign up for 500 free API credits. No card, every live endpoint included.