All platforms

YouTube scraper API

Resolve channels, videos, Shorts, playlists, comments, and transcripts over one REST surface — without juggling Data API quotas for every enrichment job.

Why teams use Social Fetch for YouTube

YouTube Data API v3 covers channels you manage — OAuth scopes, a Google Cloud project, daily quota. Social Fetch's YouTube tag is twelve REST operations under one API key.

`GET /v1/youtube/channel` resolves by `handle`, `channelId`, or `url`. `GET /v1/youtube/channels/videos` and `GET /v1/youtube/channels/shorts` page uploads and Shorts separately with `sortBy` and cursor. `GET /v1/youtube/videos` hydrates one watch URL; `GET /v1/youtube/videos/transcript` returns caption text as `plainText` plus timed `segments`. `GET /v1/youtube/videos/comments` and `.../comments/replies` page comment threads. `GET /v1/youtube/playlists` expands a playlist; `GET /v1/youtube/community-posts` resolves a community post URL.

Discovery: `GET /v1/youtube/search`, `GET /v1/youtube/search/hashtags`, and `GET /v1/youtube/shorts/trending` (no params, ~48 items). Every route returns `data.lookupStatus`, `meta.requestId`, and `meta.creditsCharged`.

What YouTube data can you get?

  • Channel lookup by handle, channel ID, or URL — subscriber and identity fields (`GET /v1/youtube/channel`).
  • Long-form uploads and Shorts as separate paginated lists, each sortable by latest or popular (`channels/videos`, `channels/shorts`).
  • Single video or Shorts detail by watch URL — title, duration, chapters, caption tracks, and view/like/comment metrics (`GET /v1/youtube/videos`).
  • Transcripts as plainText plus millisecond-timed segments for existing caption tracks (`GET /v1/youtube/videos/transcript`).
  • Top-level comments with sort order plus nested reply threads via a separate cursor (`videos/comments`, `videos/comments/replies`).
  • Playlist metadata and ordered video rows from a playlist id or `list=` URL (`GET /v1/youtube/playlists`).
  • Community post text, images, and linked video from a `youtube.com/post/...` URL (`GET /v1/youtube/community-posts`).
  • Keyword search, hashtag search, and a platform-wide Shorts trending snapshot for discovery jobs.

How to call the YouTube API

  1. 1. Create a key

    Sign up, copy `sfk_…`, and spend the 100 free credits on a channel lookup plus a transcript pull against live data.

  2. 2. Call a YouTube route

    Start with `GET /v1/youtube/channel?handle=...` for identity, then `GET /v1/youtube/videos?url=...` or `GET /v1/youtube/videos/transcript?url=...` for a specific upload. Send `x-api-key` on every request and use the documented query params — `cursor`, `sortBy`, `order` — instead of parsing HTML yourself.

  3. 3. Read the shared envelope

    Branch on `data.lookupStatus` before writing rows — `found` can still mean an empty list, and `not_found` is not an error. Persist `meta.requestId` for support and bill from `meta.creditsCharged`, not an assumed flat rate.

How much does the YouTube API cost?

Every documented YouTube operation — channel, channel videos, channel Shorts, single video, transcript, comments, comment replies, playlists, community posts, search, hashtag search, and Shorts trending — charges a flat 1 credit per successful completed request in the OpenAPI registry, with no per-route surcharge. The transcript route is flat-rate too: it does not run speech-to-text and has no AI-fallback surcharge the way some other platforms do. Paginated list and search routes bill each page as a separate request. Credits never expire on pay-as-you-go packs. Always trust `meta.creditsCharged` on the response over any number in this copy.

See credit packs

Social Fetch vs the official YouTube API

YouTube Data API v3 needs a Google Cloud project, API key or OAuth, and daily quota — right for upload management and channel-owner actions. Social Fetch reads public pages with one Social Fetch API key, no Cloud project, no OAuth. Use Data API when you operate the channel; use Social Fetch for public lookup, monitoring, and transcripts on channels you don't control.

YouTube API FAQ

Is there a YouTube scraper API?

Yes. Social Fetch provides twelve REST routes for public YouTube channel, video, Shorts, playlist, comment, community post, search, and transcript data, documented under `/docs/api` and on this hub's endpoint list.

How is this different from the YouTube Data API v3?

YouTube Data API v3 is Google's official product for channels you manage — it needs a Google Cloud project, keys or OAuth, and a daily quota. Social Fetch is a third-party public-data API: handle, URL, or video link in, a unified `{ data, meta }` envelope out, authenticated with a Social Fetch key only. Use Google's API when you operate the channel; use Social Fetch for public enrichment.

Can I fetch YouTube transcripts via API?

Yes. `GET /v1/youtube/videos/transcript` takes a public watch, `youtu.be`, or Shorts URL and returns `data.transcript.plainText` plus timed `segments` (`text`, `startMs`, `endMs`) when a caption track exists. It reads existing captions only — there is no speech-to-text fallback, so a `not_found` lookup means no usable track for that URL.

Do you support YouTube Shorts?

Yes, as their own routes rather than mixed into long-form. `GET /v1/youtube/channels/shorts` pages one channel's Shorts feed, `GET /v1/youtube/shorts/trending` returns a platform-wide trending snapshot (no query params, typically ~48 items), and `GET /v1/youtube/videos` resolves a single Shorts watch URL the same way it resolves a regular video.

How much does the YouTube API cost on Social Fetch?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

Can I pull channel videos or comments with pagination?

Yes. `GET /v1/youtube/channels/videos`, `channels/shorts`, `videos/comments`, `videos/comments/replies`, `search`, and `search/hashtags` all expose `data.page.hasMore` and `data.page.nextCursor`. Pass `nextCursor` back as the `cursor` query param on the next call — the cursor is opaque, so don't parse or reconstruct it.

How do I get replies to a specific YouTube comment?

List top-level comments with `GET /v1/youtube/videos/comments`, then take the `repliesCursor` field from a comment that has replies and pass it as `cursor` to `GET /v1/youtube/videos/comments/replies`. That endpoint does not accept a video URL directly — it only pages a thread you already located.

Does Social Fetch require a Google Cloud project?

No. Every YouTube route authenticates with a Social Fetch API key (`x-api-key`) only. There is no Cloud project, OAuth client, or YouTube Data API quota to manage.

Can I look up a YouTube playlist or a community post by URL?

Yes. `GET /v1/youtube/playlists` takes a `playlistId` or a URL containing `list=` and returns playlist metadata plus ordered video rows. `GET /v1/youtube/community-posts` takes a `youtube.com/post/...` URL and returns post text, attached images, an optional linked video, and like count.

Is YouTube scraping legal?

Social Fetch returns publicly visible YouTube data — the same pages a signed-out browser can load. You are responsible for how you use it under YouTube's terms, applicable law, and your own compliance review. We do not give legal advice.

Start with YouTube data

Create an account, spend the 100 free credits on live YouTube routes, then buy a pack when the JSON fits your pipeline. Credits do not expire on pay-as-you-go packs.