> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/youtube>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/youtube.mdx>

---

# YouTube scraper API. Forget the quota.

Channels, videos, Shorts, comments and full transcripts as JSON in one request. No Google Cloud project and no daily quota to ration.

- No Google Cloud project
- Transcripts included
- Shorts and comments

Get public YouTube data as JSON: channel stats, uploads and Shorts, video details with view and like counts, comment threads, playlists, community posts, search, and transcripts from existing caption tracks.

The YouTube Data API v3 needs a Google Cloud project, an API key or OAuth, and a daily quota you have to budget across jobs. Social Fetch reads public pages with one Social Fetch API key: no Cloud project, no quota math, and no scrapers or proxies of your own to keep working.

Every route is fetched live and costs a flat 1 credit per successful request, in the same envelope used across all 25 platforms. Start with 100 free credits, no credit card required.

## What you can 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.

## YouTube endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| Channel | GET /v1/youtube/channel | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/channel/get) |
| Channel videos | GET /v1/youtube/channels/videos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/channels/videos/get) |
| Channel shorts | GET /v1/youtube/channels/shorts | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/channels/shorts/get) |
| Playlist | GET /v1/youtube/playlists | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/playlists/get) |
| Community post | GET /v1/youtube/community-posts | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/community-posts/get) |
| Search | GET /v1/youtube/search | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/search/get) |
| Hashtag search | GET /v1/youtube/search/hashtags | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/search/hashtags/get) |
| Video | GET /v1/youtube/videos | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/videos/get) |
| Comments | GET /v1/youtube/videos/comments | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/get) |
| Comment analysis | GET /v1/youtube/videos/comments/analysis | 2 credits Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/analysis/get) |
| Replies | GET /v1/youtube/videos/comments/replies | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/videos/comments/replies/get) |
| Transcript | GET /v1/youtube/videos/transcript | 1 credit when a transcript is found Free when a transcript is unavailable | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/videos/transcript/get) |
| Trending shorts | GET /v1/youtube/shorts/trending | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/youtube/shorts/trending/get) |

## How to start

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. **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. **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.

## Pricing

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.

## Compared with the official 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.

## 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.

## Related

- [YouTube channel API](https://www.socialfetch.dev/platforms/youtube/channel): Resolve a channel by handle, channel ID, or URL — subscriber metrics and identity fields.
- [YouTube video API](https://www.socialfetch.dev/platforms/youtube/videos): Watch URL in, title, duration, chapters, caption tracks, and engagement metrics out.
- [YouTube transcript API](https://www.socialfetch.dev/platforms/youtube/videos-transcript): Existing captions as full plainText plus millisecond-timed segments — no speech-to-text fallback.
- [YouTube comments API](https://www.socialfetch.dev/platforms/youtube/videos-comments): Top-level comment threads with sort order, likes, reply counts, and cursor pagination.
- [YouTube channel Shorts API](https://www.socialfetch.dev/platforms/youtube/channels-shorts): Page one channel's vertical-video feed separately from its long-form uploads.
- [YouTube playlist API](https://www.socialfetch.dev/platforms/youtube/playlists): Playlist title, owner, and ordered video rows from a playlist id or list= URL.
- [Free YouTube transcript tool](https://www.socialfetch.dev/tools/youtube-transcript)
- [YouTube sponsorship calculator](https://www.socialfetch.dev/tools/youtube-sponsorship-calculator)
- [Transcript API use case](https://www.socialfetch.dev/use-cases/transcript-api)
- [Ask in plain English](https://www.socialfetch.dev/ask): POST /v1/ask routes a natural-language question to the matching YouTube operation.
- [Hosted MCP server](https://www.socialfetch.dev/mcp): Call the same YouTube tools from Cursor, VS Code, or Claude with OAuth — same credits as REST.
