Black Friday · 30% off

Get 30% off

Tài liệu API

Một REST API cho transcript, tìm kiếm và metadata YouTube. Lấy API key từ dashboard của bạn — 100 tín dụng miễn phí, không cần thẻ.

Xác thực

Truyền API key của bạn dưới dạng bearer token, hoặc qua x-api-key:

Authorization: Bearer sk_live_...
# or
x-api-key: sk_live_...

URL Cơ sở

https://getyoutubetranscript.com/api/v1

Tín dụng & gói

GóiGiáTín dụng/thángGiá nạp thêmGiới hạn tốc độ
Miễn phí0 $/tháng100 (một lần)—60 req/phút
Hàng tháng5 $/tháng1.0002,50 $ / 1.000200 req/phút
Hàng năm4,50 $/tháng (54 $/năm)1.0001,50 $ / 1.000300 req/phút
Starter19 $/tháng7.5001,50 $ / 1.000300 req/phút
Pro49 $/tháng25.0001,50 $ / 1.000400 req/phút
Scale99 $/tháng60.0001,50 $ / 1.000600 req/phút

1 tín dụng = 1 request thành công. Request thất bại không bao giờ bị trừ. Ví dụ: 10 request lấy transcript, trong đó 2 video không có phụ đề, chỉ tốn 8 tín dụng, và thử lại một video bị lỗi sẽ không mất phí cho đến khi thành công. Tín dụng nạp thêm hết hạn sau 30 ngày kể từ khi mua hoặc vào cuối chu kỳ thanh toán hiện tại, tùy thời điểm nào đến sau, và yêu cầu gói đăng ký đang hoạt động để sử dụng.

Điểm cuối

GET/transcript1 tín dụng

Lấy transcript của một video YouTube, kèm metadata (tiêu đề, kênh, thumbnail). Ngoài ra còn trả về language_code so với requested_language, caption_type (manual hoặc auto, null nếu không rõ) và cached / fetched_at.

Tham sốBắt buộcMô tả
vCóVideo ID hoặc URL YouTube đầy đủ
languageKhôngMã ngôn ngữ (mặc định: en)
timestampsKhôngĐặt true để thêm mốc thời gian cho từng dòng (segments: start, duration, text tính bằng giây). Mặc định tắt.
translateKhôngMã ngôn ngữ để dịch máy, ví dụ es hoặc zh-CN. Mốc thời gian giữ nguyên; phản hồi có thêm translated_to. Vẫn 1 tín dụng.

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/transcript?v=jNQXAC9IVRw" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "video_id": "jNQXAC9IVRw",
    "language_code": "en",
    "requested_language": "en",
    "caption_type": "manual",
    "title": "Me at the zoo",
    "author_name": "jawed",
    "author_url": "https://www.youtube.com/channel/UC4Qob...",
    "thumbnail_url": "https://...",
    "transcript": "All right, so here we are...",
    "word_count": 39,
    "cached": true,
    "fetched_at": "2026-09-20T03:10:58.938Z"
  }
}
GET/transcript/languages1 tín dụng

Liệt kê các ngôn ngữ phụ đề của một video (thủ công và tự động tạo) trước khi lấy một bản. default_language_code là ngôn ngữ mà /transcript trả về khi không chỉ định; video tắt phụ đề sẽ trả về danh sách rỗng.

Tham sốBắt buộcMô tả
vCóVideo ID hoặc URL YouTube đầy đủ

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/transcript/languages?v=kJQP7kiw5Fk" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "video_id": "kJQP7kiw5Fk",
    "default_language_code": "en",
    "languages": [
      { "language_code": "en", "name": "English - en", "caption_type": "manual" },
      { "language_code": "es", "name": "Spanish", "caption_type": "manual" }
    ]
  }
}
POST/batch1 tín dụng / video thành công

Đưa tối đa 100 video vào hàng đợi trong một lần gọi. Trả về batch_id ngay và lấy transcript ở chế độ nền. Kiểm tra GET /batch, hoặc truyền webhook_url để nhận một POST có chữ ký (header X-GYT-Signature) khi xong. Video thất bại không bao giờ bị trừ tín dụng.

Tham sốBắt buộcMô tả
videosCóMảng ID hoặc URL video (1-100). Video trùng chỉ lấy một lần.
languageKhôngMã ngôn ngữ cho tất cả video (mặc định: en)
timestampsKhôngtrue để thêm segments theo từng dòng vào kết quả
webhook_urlKhôngURL https công khai nhận thông báo khi batch hoàn tất
Idempotency-KeyKhôngHeader. Gửi lại request an toàn: cùng một key sẽ trả về batch ban đầu.

Yêu cầu

curl -X POST "https://getyoutubetranscript.com/api/v1/batch" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
        "videos": ["jNQXAC9IVRw", "https://youtu.be/dQw4w9WgXcQ"],
        "webhook_url": "https://example.com/hooks/transcripts"
      }'

Phản hồi

{
  "success": true,
  "data": {
    "batch_id": "324eb615-e4d5-4b3c-b8e7-04235671066b",
    "status": "queued",
    "total": 2,
    "succeeded": 0,
    "failed": 0,
    "pending": 2,
    "results_url": "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-...",
    "webhook_secret": "whsec_..."
  }
}
GET/batchMiễn phí

Trạng thái batch, số lượng và một trang kết quả theo thứ tự gửi. Mục thành công có cùng các trường như /transcript; mục thất bại có error_code.

Tham sốBắt buộcMô tả
idCóbatch_id từ POST /batch
offsetKhôngSố mục bỏ qua (mặc định: 0)
limitKhôngSố mục mỗi trang, 1-50 (mặc định: 20)

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-e4d5-4b3c-b8e7-04235671066b" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "batch_id": "324eb615-...",
    "status": "completed",
    "total": 2,
    "succeeded": 1,
    "failed": 1,
    "credits_charged": 1,
    "items": [
      { "position": 0, "status": "succeeded", "charged": true, "video_id": "jNQXAC9IVRw", "caption_type": "manual", "transcript": "All right, so here we are...", ... },
      { "position": 1, "status": "failed", "charged": false, "video_id": "dQw4w9WgXcQ", "error_code": "TRANSCRIPT_DISABLED" }
    ],
    "next_offset": null
  }
}
GET/search1 tín dụng / trang

Tìm kiếm video YouTube với bộ lọc và phân trang.

Tham sốBắt buộcMô tả
qCóTừ khóa tìm kiếm (tối thiểu 2 ký tự)
countryKhôngMã quốc gia 2 chữ cái (mặc định: us)
languageKhôngMã ngôn ngữ (mặc định: en)
page_tokenKhôngGiá trị continuation_token từ response trước, để lấy trang tiếp theo
limitKhôngSố kết quả tối đa (mặc định 20, tối đa 50)

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/search?q=lofi+beats" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "query": "lofi beats",
    "video_results": [ { "title": "...", "videoId": "...", "channel": { "name": "..." } } ],
    "continuation_token": "c_bKt9xQ2mVf7LpR0aZ3sWyA"
  }
}
GET/resolve1 tín dụng

Phân giải handle, URL hoặc username của một kênh thành channel ID thực. Đầu vào có cấu trúc sẵn (đã là channel ID hoặc URL chứa sẵn ID) được phân giải ngay lập tức, không cần gọi mạng; một handle trần sẽ kích hoạt một lượt tra cứu thực.

Tham sốBắt buộcMô tả
handleCóChannel ID, URL, hoặc @handle

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/resolve?handle=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "channel_id": "UCBJycsmduvYEL83R_U4JriQ",
    "title": "Marques Brownlee",
    "handle": "http://www.youtube.com/@mkbhd",
    "resolved_via": "lookup"
  }
}
GET/channel/latest1 tín dụng

Thông tin kênh (tiêu đề, số người đăng ký, mô tả, ảnh đại diện) và các video mới nhất ở tab trang chủ của kênh. Để lấy toàn bộ lịch sử tải lên, dùng /channel/videos.

Tham sốBắt buộcMô tả
channelCó@handle, URL hoặc ID kênh

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/channel/latest?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "channel": { "id": "UCBJycsmduvYEL83R_U4JriQ", "title": "Marques Brownlee", "subscribers": 1160000, "avatar": "https://..." },
    "about": { "description": "...", "links": [] },
    "videos_sections": [ ... ]
  }
}
GET/channel/videos1 tín dụng / trang

Tất cả video kênh đã tải lên, mới nhất trước, có phân trang.

Tham sốBắt buộcMô tả
channelCó@handle, URL hoặc ID kênh
tabKhôngvideos (mặc định), shorts hoặc streams (tab Trực tiếp). Chỉ áp dụng cho trang đầu.
sortKhônglatest (mặc định), popular hoặc oldest. Chỉ áp dụng cho trang đầu.
continuationKhôngcontinuation_token từ phản hồi trước, để lấy trang tiếp theo (dùng thay cho các tham số khác). Hết hạn sau 24 giờ.

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/channel/videos?channel=@mkbhd&tab=shorts&sort=popular" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "views": "6.2M", "published_time": "1d ago", "length": "10:47" } ],
    "has_more": true,
    "continuation_token": "c_pqHR9v13sqaqxlcKhA4MnA"
  }
}
GET/channel/playlists1 tín dụng / trang

Danh sách phát của một kênh (tab Danh sách phát), theo trang. Truyền id danh sách phát vào /playlist để liệt kê video của nó.

Tham sốBắt buộcMô tả
channelCó@handle, URL hoặc ID kênh
continuationKhôngcontinuation_token từ phản hồi trước, để lấy trang tiếp theo (dùng thay cho các tham số khác). Hết hạn sau 24 giờ.

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/channel/playlists?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "playlists": [ { "position": 1, "id": "PL...", "title": "...", "link": "https://www.youtube.com/playlist?list=PL...", "video_count": 5 } ],
    "has_more": false,
    "continuation_token": null
  }
}
GET/channel/posts1 tín dụng / trang

Bài đăng cộng đồng của một kênh (tab Bài đăng), theo trang: văn bản, liên kết, lượt thích, bình luận và ảnh đính kèm.

Tham sốBắt buộcMô tả
channelCó@handle, URL hoặc ID kênh
continuationKhôngcontinuation_token từ phản hồi trước, để lấy trang tiếp theo (dùng thay cho các tham số khác). Hết hạn sau 24 giờ.

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/channel/posts?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "posts": [ { "position": 1, "id": "Ugkx...", "url": "https://www.youtube.com/post/Ugkx...", "text": "...", "published_time": "2 years ago", "likes": "12K", "comments": "1K" } ],
    "has_more": true,
    "continuation_token": "c_DfE9mQx2Ln8TbW4kJ1pZsA"
  }
}
GET/channel/search1 tín dụng / trang

Tìm kiếm trong video của một kênh, có phân trang.

Tham sốBắt buộcMô tả
channelCó@handle, URL hoặc ID kênh
qCóTừ khóa tìm kiếm (tối thiểu 2 ký tự)
continuationKhôngcontinuation_token từ phản hồi trước, để lấy trang tiếp theo (dùng thay cho các tham số khác). Hết hạn sau 24 giờ.

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/channel/search?channel=@mkbhd&q=iphone" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "published_time": "3w ago", "length": "17:14", "channel": { "name": "Marques Brownlee" } } ],
    "has_more": true,
    "continuation_token": "c_pnm10M6orzLgOTVWJk2oww"
  }
}
GET/playlist1 tín dụng / trang

Tất cả video trong playlist, có phân trang. continuation_token là null ở trang cuối.

Tham sốBắt buộcMô tả
listCóPlaylist ID hoặc URL
continuationKhôngcontinuation_token từ phản hồi trước, để lấy trang tiếp theo (dùng thay cho các tham số khác). Hết hạn sau 24 giờ.

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/playlist?list=PLxxx" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "playlist_id": "PLxxx",
    "title": "...",
    "videos": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." } } ],
    "has_more": true,
    "continuation_token": "c_DfE9mQx2Ln8TbW4kJ1pZsA"
  }
}
GET/video/related1 tín dụng

Các video YouTube đề xuất bên cạnh một video, kèm tiêu đề, id, kênh, lượt xem, thời gian đăng và độ dài.

Tham sốBắt buộcMô tả
vCóVideo ID hoặc URL YouTube đầy đủ

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/video/related?v=dQw4w9WgXcQ" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "related": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." }, "views": "410K", "published_time": "11y ago", "length": "1:01:35" } ]
  }
}
GET/video/dislikes1 tín dụng

Lượt thích và không thích ước tính của một video. YouTube không còn công bố lượt không thích nên đây là số ước tính (estimated luôn là true).

Tham sốBắt buộcMô tả
vCóVideo ID hoặc URL YouTube đầy đủ

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/video/dislikes?v=dQw4w9WgXcQ" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "likes": 19497714,
    "dislikes": 521713,
    "rating": 4.9,
    "view_count": 1830715799,
    "estimated": true
  }
}
GET/channel/banner1 tín dụng

Banner gốc chưa cắt của một kênh, mọi kích thước cắt YouTube cung cấp và ảnh đại diện. has_banner là false khi kênh không có banner.

Tham sốBắt buộcMô tả
channelCó@handle, URL hoặc ID kênh

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/channel/banner?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "channel_id": "UCBJycsmduvYEL83R_U4JriQ",
    "title": "Marques Brownlee",
    "avatar": "https://yt3.googleusercontent.com/...",
    "has_banner": true,
    "banner": { "original": "https://...=s0", "largest": "https://...=w2560", "sizes": [ { "url": "https://...", "width": 1060, "height": 175 } ] }
  }
}
GET/creditsMiễn phí

Kiểm tra số dư tín dụng còn lại của key này trước khi sử dụng - cùng dữ liệu mà công cụ MCP get_credits trả về.

Tham sốBắt buộcMô tả

Yêu cầu

curl "https://getyoutubetranscript.com/api/v1/credits" \
  -H "Authorization: Bearer sk_live_..."

Phản hồi

{
  "success": true,
  "data": {
    "plan_credits_left": 87,
    "topup_credits_left": 0,
    "plan": "monthly",
    "rate_limit_per_minute": 200
  }
}

Lỗi

Lỗi trả về một JSON body kèm trường code cố định để bạn phân nhánh xử lý, bên cạnh mã trạng thái HTTP:

Trạng tháiMãÝ nghĩa
400BAD_REQUESTThiếu hoặc sai tham số
400CURSOR_EXPIREDCon trỏ trang đã hết hạn (sau 24 giờ) - bắt đầu lại từ trang đầu
401MISSING_API_KEY / INVALID_API_KEYKhông có key, hoặc key không hợp lệ/đã bị thu hồi
402PAYMENT_REQUIREDHết tín dụng - hãy nạp thêm hoặc nâng cấp gói
404VIDEO_UNAVAILABLE / TRANSCRIPT_NOT_FOUNDKhông tìm thấy video hoặc tài nguyên
429RATE_LIMITEDQuá nhiều request so với gói của bạn
503UPSTREAM_UNAVAILABLESự cố tạm thời từ upstream - có thể thử lại an toàn
504UPSTREAM_TIMEOUTNguồn mất hơn 25 giây - không bị tính phí, có thể thử lại

Dùng API này với một công cụ AI

Muốn để Claude (hoặc một công cụ AI coding khác) tự gọi API này thay vì tự viết request? Tải YouTube Transcript skill - một Claude Skill dựng sẵn, dạy nó cách lấy transcript, tìm kiếm, và nhiều hơn nữa.

Dùng trong Zapier

Không cần code: ứng dụng Zapier của chúng tôi lấy bản chép lời, tìm kiếm YouTube hoặc liệt kê video của một kênh trong bất kỳ Zap nào. Kết nối bằng cùng khóa API; mỗi hành động tốn số credit bằng lệnh gọi API.

Featured on aitoolfame.comFeatured on Aura++Featured on DeepLaunch.ioFeatured on Dofollow.ToolsFeatured on EasyDoFollowFeatured on EarlyHuntFeatured on Findly.toolsFeatured on FoundrListGood AI ToolsFeatured on IndieHuntFeatured on LaunchBuffFeatured on launched.toolsFeatured on Launch Llama ToolsFeatured on LemonLaunchLiftOff launch badgeMy Launch StashGetYouTubeTranscript on Nick LaunchesOpenHunts Club MemberFeatured on saasfame.comShinyLaunchFeatured on ShowMeBestAIFeatured on toolfame.comListed on Turbo0Featured on Twelve ToolsHuzzler Embed BadgeFeatured on CodeHypeGetYouTubeTranscript on Better LaunchDokeyAIFeatured on WayfindioFeatured on LaunchZoneFeatured on NoonlaunchFeatured on WhatsthebigdataSurfaced on CodeTrendyFeatured on ScrollLaunchFeatured on ufind.bestFeatured on ShipBoostProduct WingWe Like ToolsAppa ListAcid ToolsPower Up ToolsToshi ListAIGC 160Appsy ToolsHunt for ToolsBeam ToolsTool Find DirTool SignalSaaS Tools DirSoftware BoltProduct List DirStack DirectorySaaS FieldSaaS WheelSaaS RootsStartup BenchmarksUnite ListTrustinerBest Tool VaultSolver ToolsAsh ListSmart Kit HubAI X CollectionAI Tech ViralMillion Dot HomepageThat App ShowLaunch ScrollMy Start ToolsLatest AI UpdatesSuper AI BoomTools Under RadarThe Key ToolsTool JourneyTools List HQThe App ToolsThe Mega ToolsSource DirTool CosmosTop Trend ToolsTiny Tool HubTool PrismStartup AIdeasFeatured on WonderLaunchFeatured on ShipycornFeatured on ToolsClawListed on ProofStoriesFeatured on ToolListedLaunched on Launch Streak