# YouTube Video Transcript API (https://www.socialcrawl.dev/platforms/youtube/video-transcript) > Returns the transcript of a YouTube video as timestamped segments: each with text, start `offset` and `duration` (seconds), language, word count, and speech rate. Supports multiple languages via `language`. Without `language`, the transcript is in the language spoken in the video's original audio when YouTube publishes it, not a dubbed track, even when the video has auto-dubbed audio in other languages; each segment's `lang` says which language you got. When no transcript exists (the owner disabled captions, the video is members-only, login-gated or gone, or no caption track matches the requested language) the endpoint returns 404 RESOURCE_NOT_FOUND with `error.details.reason` set to `captions_disabled`, `members_only`, `login_required`, `no_captions`, or `video_gone`, and no credits are charged. Retrying returns the same result, with one exception: a video uploaded in the last day can answer `captions_disabled` until YouTube generates its automatic captions, so a retry a few hours later can succeed. TL;DR: `GET /v1/youtube/video/transcript` costs 3 credits per call and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `url` | yes | Full URL of the YouTube video | | `language` | no | 2 letter language code, ie 'en', 'es', 'fr' etc. If no caption track matches the language you specify, the request returns 404 RESOURCE_NOT_FOUND (reason `no_captions`) at 0 credits. Omit it to get the video's original spoken language. | | `moments` | no | Optional CSV of moment kinds to find in the timestamped transcript: brand, sponsor_read, product_demo, call_to_action. Returns data.moments = [{ kind, start_ms, end_ms, quote }]. Quote is copied from the transcript. Times come from the segments, never from the judge. Price of the extra step is an owner decision; today it does not add credits. | | `brand` | no | Optional, with moments=. The company or product to look for, so a namesake is not counted. | | `q` | no | Optional question about the video, up to 300 characters, for example q=what discount code do they give. Returns data.moments = [{ kind: "answers_query", start_ms, end_ms, quote }] for each stretch of about six transcript lines that states the answer: a stretch that only shares the topic is left out, and a question the video never answers returns an empty list. The quote is one line copied from the transcript and the times come from the segments. Send moments= or q=, not both. If the step cannot run, the transcript is returned without data.moments and data._warnings carries moments_unavailable. Today it does not add credits. | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/youtube/video/transcript" \ --data-urlencode "url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \ -H "x-api-key: sc_YOUR_API_KEY" ``` ## FAQ ### How do I get a YouTube video's transcript? Send a GET request to /v1/youtube/video/transcript with url=https://www.youtube.com/watch?v=... The response is an array of timestamped caption segments: start time, end time, and text per line. ### Can I request a transcript in a specific language? Yes. Pass language=en, language=es, language=ko, etc., any 2-letter code. If the video doesn't have that language track, the transcript field comes back null so your code can fall back gracefully. ### How much does a transcript request cost? Transcripts cost 3 credits per request because the caption extraction is heavier than a plain metadata read. 100 signup credits covers ~33 transcripts so you can prototype for free. ### Is this good for LLM RAG pipelines? Yes. Timestamped caption segments feed directly into retrieval-augmented generation. Chunk the text by timestamp windows, embed, and you get searchable YouTube video content for any LLM. ### Which videos have transcripts available? Any video with auto-generated or uploaded captions in at least one language, the majority of channels over 1,000 subscribers. Music videos and very new uploads sometimes don't have captions yet. See the full YouTube API: https://www.socialcrawl.dev/platforms/youtube ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing ## Explore with AI Questions this API answers, phrased for an AI assistant: - How to get a YouTube video transcript with timestamps via API - Best YouTube transcript API for LLM RAG pipelines