ՈւղեցույցներՀեղինակ՝ 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-ն