গাইডলিখেছেন Péter Nagy

API দিয়ে YouTube ট্রান্সক্রিপ্ট কীভাবে পাবেন (curl, Python, JavaScript)

একটি HTTP অনুরোধে যেকোনো পাবলিক YouTube ভিডিওর ট্রান্সক্রিপ্ট নিন। কাজ করা curl, Python ও JavaScript উদাহরণ, আউটপুট ফরম্যাট, এরর কোড ও খরচ।

এখনই একটি YouTube ভিডিওর সামারি করুন

লিংক পেস্ট করুন এবং ক্লিকযোগ্য টাইমস্ট্যাম্পসহ মূল পয়েন্টগুলো পেয়ে যান।

API দিয়ে YouTube ট্রান্সক্রিপ্ট পেতে ভিডিওর URL বা ID এবং একটি API কী দিয়ে একটি HTTP অনুরোধ পাঠান, তারপর রেসপন্স থেকে ট্রান্সক্রিপ্ট পড়ুন। এই গাইডে sum.video Transcript API ব্যবহার করে curl, Python ও JavaScript-এ অনুরোধটি দেখানো হয়েছে, তারপর ফরম্যাট, এরর ও খরচ নিয়ে আলোচনা আছে।

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 ড্যাশবোর্ডে (sum.video-তে /dashboard/api) একটি কী তৈরি করুন। আপনি সর্বোচ্চ 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 বোনাস ক্রেডিটও পান। আরও ভারী কাজের জন্য, যেমন পুরো চ্যানেল নেওয়া, অটো টপ-আপ ও বাজেট নিয়ে আলোচনা করা পরিস্থিতি বড় পরিসরে RAG অ্যাপের জন্য YouTube ট্রান্সক্রিপ্ট পড়ুন। মূল্যও দেখুন।

তৈরি করার আগে জানার মতো সীমাবদ্ধতা

  • শুধু ক্যাপশনওয়ালা ভিডিও কাজ করে। 404 no_transcript-এর প্রধান কারণ এটিই।
  • স্বয়ংক্রিয় ক্যাপশনে ভুল থাকতে পারে, বিশেষ করে নাম, উচ্চারণ ও প্রযুক্তিগত শব্দে।
  • API শুধু ট্রান্সক্রিপ্ট ফেরত দেয়। সারসংক্ষেপ করে না। ট্রান্সক্রিপ্টের ওপর সারসংক্ষেপ, টাইমস্ট্যাম্প ও চ্যাট চাইলে তা করে YouTube সামারাইজার, আর ট্রান্সক্রিপ্ট টুল হলো একটি ভিডিওর জন্য কোড ছাড়া সংস্করণ।
  • অফিশিয়াল YouTube Data API এখানে বিকল্প নয়। এর ক্যাপশন ডাউনলোড পদ্ধতিতে ভিডিও সম্পাদনার অনুমতি লাগে, তাই এটি আপনার নিজের ভিডিওর জন্য (Google ডকুমেন্টেশন)।

সূত্র

সচরাচর জিজ্ঞাসিত প্রশ্নাবলী

অফিশিয়াল YouTube Data API ছাড়া কি YouTube ট্রান্সক্রিপ্ট পাওয়া যায়?

হ্যাঁ। 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 ব্যবহার করে দেখুন