Lấy transcript YouTube tự động từ ứng dụng của bạn
Gửi link bằng POST /v1/transcriptions kèm khóa API. Python hay bất kỳ HTTP client nào cũng dùng được. Với wait=60, request chờ tối đa 60 giây; xem các trường và mã phản hồi trong tài liệu tạo transcript.
Tạo khóa API trong bảng điều khiển rồi dùng từ server hoặc script. Khi tạo job thành công, lưu ngay id trả về. Request hết thời gian chờ không có nghĩa là job thất bại: hãy đọc tiếp bằng GET /v1/transcriptions/:id, đừng gửi lại request tạo mới.
Job có thể đi qua queued, fetching và transcribing. Chỉ đọc transcript khi status là completed; với failed, xử lý lỗi tương ứng. Đừng biến một lần chờ mạng hoặc video không truy cập được thành bản transcript trống mà ứng dụng lại báo thành công.
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"youtube","url":"https://youtu.be/dQw4w9WgXcQ"}'Dùng transcript_source để kiểm tra nguồn văn bản
API cho biết transcript lấy từ phụ đề hay âm thanh, và caption_kind phân biệt loại phụ đề. billed_minutes là thời lượng video làm tròn lên từng phút. Tài liệu đối tượng transcription giải thích các trường trong phản hồi.
Nếu cần đối chiếu nguồn, lưu cả transcript_source và caption_kind. Phụ đề do người đăng tải lên giữ nguyên lời đã công bố nhưng không có mốc thời gian từng từ. Phụ đề YouTube tự động có thời điểm bắt đầu từ; AI có cả thời điểm bắt đầu, kết thúc và độ tin cậy.
Mỗi segment có thời điểm bắt đầu và kết thúc tính bằng giây, để người đọc quay lại đúng đoạn video. Chỉ thêm include=words khi giao diện cần dữ liệu từng từ. JSON bên dưới minh họa cấu trúc phản hồi, không trích lời từ video trong request mẫu.
{
"id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
"status": "completed",
"transcript_source": "youtube_captions",
"caption_kind": "auto_generated",
"language": "en",
"billed_minutes": 4,
"transcript": {
"text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
"segments": [
{ "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." }
]
}
}Khi nào dùng auto, captions hoặc stt?
source mặc định là auto. Chọn captions (chỉ phụ đề) nếu bạn cần đúng phần phụ đề đã có; thiếu phụ đề phù hợp thì job báo no_captions và không tính phí. Chọn stt để luôn xử lý âm thanh. Xem cách chọn nguồn trước khi ghép các tùy chọn.
Cần nhận diện người nói thì dùng AI. Với auto và diarize=true, API bỏ qua phụ đề. Nếu ghép captions với diarize=true, request bị từ chối chứ API không âm thầm bỏ tùy chọn nhận diện người nói.
language cũng ảnh hưởng đến việc chọn phụ đề: bản phụ đề phải đúng ngôn ngữ bạn yêu cầu, hoặc đúng ngôn ngữ gốc của video khi để auto. Không dùng phụ đề dịch tự động. Với AI, language chỉ là gợi ý nhận diện, không phải yêu cầu dịch.
{
"platform": "youtube",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"source": "stt"
}Kiểm tra lỗi trước khi gửi lại video
Video riêng tư, giới hạn độ tuổi hoặc đang phát trực tiếp cần nguồn khác; gửi lại cùng link không giải quyết được. Nếu gặp no_captions, hãy quyết định xem transcript từ âm thanh có phù hợp không. Nếu job còn chạy, đọc tiếp bằng id. Danh sách lỗi giúp bạn chọn đúng cách xử lý.
Khi cần gửi lại request tạo job do lỗi kết nối, làm theo quy tắc Idempotency-Key. Tái sử dụng transcript gần đây là tùy chọn riêng, chỉ khớp khi cùng video và cùng bộ tùy chọn. Transcript trong cache vẫn có thể bị tính như job mới; đọc lại một job đã hoàn tất thì không mất phút.
Ứng dụng nhận nhiều nền tảng nên kiểm tra nguồn và tùy chọn hỗ trợ. Cùng endpoint này nhận cả TikTok, Instagram và các link được hỗ trợ khác, nhưng không phải nền tảng nào cũng lấy được phụ đề.