sum.video logosum.video/
გიდებიავტორი: Péter Nagy

როგორ მივიღოთ YouTube-ის ტრანსკრიპტი API-ით (curl, Python, JavaScript)

მიიღე ნებისმიერი საჯარო YouTube ვიდეოს ტრანსკრიპტი ერთი HTTP მოთხოვნით. მოქმედი მაგალითები curl-ში, Python-სა და JavaScript-ში, გამოტანის ფორმატები, შეცდომის კოდები და ხარჯი.

შეაჯამე YouTube ვიდეო ახლავე

ჩასვი ბმული და მიიღე ძირითადი პუნქტები დაკლიკებადი დროის ნიშნულებით.

YouTube-ის ტრანსკრიპტის API-ით მისაღებად გააგზავნე ერთი HTTP მოთხოვნა ვიდეოს URL-ით ან ID-ით და API გასაღებით, და წაიკითხე ტრანსკრიპტი პასუხიდან. ეს გზამკვლევი აჩვენებს მოთხოვნას curl-ში, Python-სა და JavaScript-ში sum.video-ს Transcript API-ის გამოყენებით, შემდეგ კი განიხილავს ფორმატებს, შეცდომებს და ხარჯს.

რას აბრუნებს API

ბოლო წერტილი აბრუნებს საჯარო YouTube ვიდეოს არსებულ სუბტიტრებს, იქნება ეს ავტორის დაწერილი თუ YouTube-ის მიერ ავტომატურად შექმნილი. ის ხმას არ ტრანსკრიბირებს. თუ ვიდეოს სუბტიტრები არ აქვს, ვარაუდის ნაცვლად შეცდომას მიიღებ (დეტალები ქვემოთ).

საფუძვლები:

  • ბოლო წერტილი: POST https://sum.video/api/v1/transcript (GET-იც მუშაობს)
  • ავთენტიფიკაცია: შენი გასაღები X-API-Key სათაურში, ან Authorization: Bearer <key>
  • შეყვანა: url ან video_id
  • არასავალდებულო lang (ნაგულისხმევი en)
  • არასავალდებულო format: json, text ან srt

პასუხი ასევე გეუბნება სუბტიტრების ტრეკის რეალურ ენას და იმას, ავტომატურად არის თუ არა შექმნილი, რომ იცოდე რა ხარისხს ელოდო.

ნაბიჯი 1: შექმენი API გასაღები

შედი და შექმენი გასაღები API პანელში (/dashboard/api sum.video-ზე). შეგიძლია გქონდეს 5-მდე აქტიური გასაღები, რაც მოსახერხებელია სატესტო და საწარმოო გასაღების განცალკევებისთვის. შენი პირველი გასაღები მოდის 10 უფასო კრედიტით, რაც 5 ტრანსკრიპტისთვის საკმარისია, ამიტომ ყველაფერი ქვემოთ ხარჯის გარეშე შეგიძლია სცადო.

შეაჯამე YouTube ვიდეო ახლავე

ჩასვი ბმული და მიიღე ძირითადი პუნქტები დაკლიკებადი დროის ნიშნულებით.

ნაბიჯი 2: გააგზავნე პირველი მოთხოვნა

curl

curl -X POST https://sum.video/api/v1/transcript \
  -H "X-API-Key: $SUMVIDEO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "lang": "en", "format": "text"}'

რადგან GET-იც მუშაობს, შეგიძლია გამოსცადო სკრიპტიდან, რომელიც მხოლოდ URL-ებს აგებს. გასაღები სჯობს სათაურში გადასცე, რომ ლოგებში არ მოხვდეს.

Python

import os
import requests

resp = requests.post(
    "https://sum.video/api/v1/transcript",
    headers={"X-API-Key": os.environ["SUMVIDEO_API_KEY"]},
    json={"video_id": "dQw4w9WgXcQ", "lang": "en", "format": "text"},
    timeout=30,
)

if resp.status_code == 404:
    print("No captions for this video")
else:
    resp.raise_for_status()
    print(resp.text)

JavaScript (Node 18+ ან ბრაუზერი)

const resp = await fetch("https://sum.video/api/v1/transcript", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.SUMVIDEO_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    video_id: "dQw4w9WgXcQ",
    lang: "en",
    format: "text",
  }),
});

if (resp.status === 404) {
  console.log("No captions for this video");
} else if (!resp.ok) {
  throw new Error(`Request failed: ${resp.status}`);
} else {
  console.log(await resp.text());
}

შეინახე გასაღები სერვერზე. ბრაუზერის კოდში მოთავსებულ გასაღებს გადაიწერს ნებისმიერი, ვინც დეველოპერის ინსტრუმენტებს გახსნის.

ნაბიჯი 3: აირჩიე სწორი ფორმატი

ფორმატი რას იღებ საუკეთესოა
json სეგმენტები, თითოეულს აქვს offset და duration წამებში დროის ნიშნულებისთვის, ვიდეოს კონკრეტულ მომენტზე ბმულებისთვის, დროით დაყოფისთვის
text უბრალო ტრანსკრიპტი პრომპტებისთვის, ძიების ინდექსებისთვის, რეზიუმეებისთვის
srt სუბტიტრების ფაილის შიგთავსი ვიდეორედაქტორებისთვის, სუბტიტრების ინსტრუმენტებისთვის

თუ გეგმავ ვიდეოს კონკრეტულ მომენტზე ბმულის გაკეთებას, გამოიყენე json და ააგე ბმული სეგმენტის offset-იდან. LLM-ისთვის მისაწოდებლად text უფრო პატარა და მარტივია. თუ მოგვიანებით გინდა ტრანსკრიპტში ხელით ძებნა, იხილე როგორ ვეძებოთ YouTube ვიდეოს ტრანსკრიპტში.

ნაბიჯი 4: აირჩიე ენა

lang-ის ნაგულისხმევი მნიშვნელობაა en. დააყენე სასურველი ენა, მაგალითად de ან es. პასუხი გვატყობინებს რეალურად დაბრუნებული ტრეკის ენას, ამიტომ გადაამოწმე და ნუ ივარაუდებ. ვიდეოს ხშირად მხოლოდ ერთი სუბტიტრების ტრეკი აქვს, API კი რეალურ სუბტიტრებს აბრუნებს, ამიტომ შენთვის არ თარგმნის.

ნაბიჯი 5: დაამუშავე შეცდომები

ეს შემთხვევები პირველივე დღიდან გაითვალისწინე:

  • 404 no_transcript: ვიდეოს სუბტიტრები არ აქვს, ან ეს არის პირდაპირი ეთერი, პირადი ან წაშლილი ვიდეო. განმეორებით საცდელი არაფერია. გამოტოვე ან სთხოვე მომხმარებელს სხვა ვიდეო.
  • 402 budget_exceeded: მიაღწიე შენ მიერ დაყენებულ ყოველთვიურ კრედიტის ლიმიტს. იხილე შემდეგი განყოფილება.
  • სიჩქარის ლიმიტი: თითოეული გასაღები უშვებს 60 მოთხოვნას წუთში. გადაანაწილე ჯგუფური სამუშაოები და შეანელე, როცა გზღუდავენ.
  • ჩვენი მხარის წარუმატებლობები: სცადე ხელახლა მცირე პაუზის შემდეგ. ისინი არაფერს ღირს.

მარტივი ციკლი, რომელიც სერვერის შეცდომებზე იმეორებს, 404-ზე კი გამოტოვებს, მოიცავს წარმოების საჭიროებების უმეტესობას.

რა ღირს

თითოეული ტრანსკრიპტი ღირს 2 კრედიტი. მოთხოვნები, რომლებიც ტრანსკრიპტს არ აბრუნებს ან sum.video-ს მხრიდან მარცხდება, არაფერს ღირს, ამიტომ 404 არასდროს ცარიელებს შენს ბალანსს. ბალანსის ნახვა შეგიძლია GET /api/v1/credits-ით.

კრედიტები იყიდება ერთჯერად პაკეტებად, რომლებიც არასდროს იწურება:

პაკეტი ფასი ერთ ტრანსკრიპტზე
100 კრედიტი $4.49 $0.090
500 კრედიტი $13.99 $0.056
2,000 კრედიტი $37.99 $0.038
5,000 კრედიტი $74.99 $0.030

Pro-ს გამომწერები ყოველთვიურად იღებენ 100 ბონუს კრედიტსაც. უფრო მძიმე დატვირთვისთვის, მაგალითად მთელი არხის ჩასატვირთად, წაიკითხე სცენარი YouTube-ის ტრანსკრიპტები RAG აპლიკაციისთვის დიდი მასშტაბით, სადაც განხილულია ავტომატური შევსება და ბიუჯეტები. იხილე ასევე ფასები.

შეზღუდვები, რომლებიც აგებამდე უნდა იცოდე

  • მუშაობს მხოლოდ სუბტიტრებიანი ვიდეოები. ეს არის 404 no_transcript-ის მთავარი მიზეზი.
  • ავტომატურად შექმნილ სუბტიტრებში შეიძლება შეცდომები იყოს, განსაკუთრებით სახელებში, აქცენტებსა და ტექნიკურ ტერმინებში.
  • API აბრუნებს მხოლოდ ტრანსკრიპტს. ის არ აჯამებს. თუ ტრანსკრიპტზე დაყრდნობით გინდა რეზიუმეები, დროის ნიშნულები და ჩატი, ამას აკეთებს YouTube-ის შემაჯამებელი, ხოლო ტრანსკრიპტის ინსტრუმენტი ერთი ვიდეოსთვის კოდის გარეშე ვერსიაა.
  • ოფიციალური YouTube Data API აქ ჩანაცვლება არ არის. მისი სუბტიტრების ჩამოტვირთვის მეთოდი მოითხოვს ვიდეოს რედაქტირების უფლებას, ამიტომ განკუთვნილია შენი საკუთარი ვიდეოებისთვის (Google-ის დოკუმენტაცია).

წყაროები

ხშირად დასმული კითხვები

შემიძლია თუ არა YouTube-ის ტრანსკრიპტის მიღება ოფიციალური YouTube Data API-ის გარეშე?

დიახ. sum.video-ს Transcript API იღებს ვიდეოს URL-ს ან ID-ს და აბრუნებს არსებულ სუბტიტრებს, Google Cloud პროექტის გარეშე. Google-ის საკუთარი სუბტიტრების ჩამოტვირთვის მეთოდი მოითხოვს ვიდეოს რედაქტირების უფლებას, ამიტომ მხოლოდ შენი საკუთარი ვიდეოებისთვის ვარგა.

ტრანსკრიბირებს თუ არა API ვიდეოებს, რომლებსაც სუბტიტრები არ აქვთ?

არა. ის აბრუნებს YouTube-ის არსებულ სუბტიტრებს, ხელით დაწერილს ან ავტომატურად შექმნილს. ვიდეოები სუბტიტრების გარეშე, პირდაპირი ეთერები, პირადი და წაშლილი ვიდეოები აბრუნებს 404 no_transcript-ს და ეს მოთხოვნა არაფერი ღირს.

რა ღირს ერთი ტრანსკრიპტი?

2 კრედიტი ერთ ტრანსკრიპტზე. პაკეტები იწყება 100 კრედიტიდან $4.49-ად ($0.090 ერთ ტრანსკრიპტზე) და სრულდება 5,000 კრედიტით $74.99-ად ($0.030 ერთ ტრანსკრიპტზე), ხოლო კრედიტები არასდროს იწურება.

რა გამოტანის ფორმატებია ხელმისაწვდომი?

json (სეგმენტები offset და duration-ით წამებში), text და srt. დააყენე format ველი მოთხოვნაში.

როგორ გავსინჯო უფასოდ?

შენი პირველი API გასაღები მოდის 10 უფასო კრედიტით, ანუ 5 ტრანსკრიპტით. Pro-ს გამომწერები ამას გარდა ყოველთვიურად იღებენ 100 ბონუს კრედიტს.

შეაჯამე YouTube ვიდეო ახლავე

ჩასვი ბმული და მიიღე ძირითადი პუნქტები დაკლიკებადი დროის ნიშნულებით.

youtube ტრანსკრიპტის apiapi გზამკვლევიpythonjavascriptcurl

მსგავსი სტატიები

ბოლო პოსტები

შეაჯამე ნებისმიერი YouTube ვიდეო წამებში

სცადე sum.video