YouTube Transcript NPM প্যাকেজ: JavaScript ও TypeScript SDK
আপনার Node.js অ্যাপ্লিকেশনে প্রোগ্রামের মাধ্যমে YouTube ট্রান্সক্রিপ্ট বের করুন। NPM থেকে ইনস্টল করুন, আপনার API key দিয়ে প্রমাণীকরণ করুন এবং কয়েক মিনিটেই ভিডিও ট্রান্সক্রাইব করা শুরু করুন।
ইনস্টলেশন
npm install youtube-transcript-api pnpm add youtube-transcript-api yarn add youtube-transcript-api
কুইক স্টার্ট
import { YouTubeTranscript } from "youtube-transcript-api";
const yt = new YouTubeTranscript({ apiKey: "your_api_key" });
const result = await yt.getTranscript("dQw4w9WgXcQ");
console.log(result.data?.transcript.text);ফিচার
সম্পূর্ণ V2 API কভারেজ
Transcribe, batch, jobs, polling: প্রতিটি endpoint র্যাপ করা।
TypeScript-ফার্স্ট
IntelliSense সমর্থনসহ সম্পূর্ণ টাইপ ডেফিনিশন।
শূন্য ডিপেনডেন্সি
নেটিভ fetch ব্যবহার করে। শুধু Node 18+, কোনো বাড়তি বোঝা নেই।
টাইপড এরর
প্রতিটি API এরর কোডের জন্য আলাদা এরর ক্লাস।
বিল্ট-ইন পোলিং
async ASR ট্রান্সক্রিপশনের জন্য waitForJob হেল্পার।
ESM ও CommonJS
কোনো সেটআপ ছাড়াই দুটো মডিউল সিস্টেমেই কাজ করে।
অপশনসহ ট্রান্সক্রাইব করুন
const result = await yt.transcribe({
video: "dQw4w9WgXcQ",
language: "fr",
source: "manual",
format: {
timestamp: true,
paragraphs: true,
words: false,
},
});
console.log(result.status); // "completed"
console.log(result.data?.transcript.text); // Full transcript text
console.log(result.data?.transcript.language); // "fr"
console.log(result.data?.transcript.segments); // Timestamped segments
console.log(result.credits_used); // Credits consumedব্যাচ প্রসেসিং (সর্বোচ্চ ১০০টি ভিডিও)
const result = await yt.batch({
video_ids: ["dQw4w9WgXcQ", "jNQXAC9IVRw", "9bZkp7q19f0"],
format: { timestamp: true },
});
console.log(result.summary);
// { total: 3, succeeded: 3, failed: 0, processing: 0 }
for (const item of result.results) {
console.log(`${item.data?.video_id}: ${item.data?.transcript.text.slice(0, 100)}...`);
}ASR অডিও ট্রান্সক্রিপশন
ক্যাপশনবিহীন ভিডিওর জন্য সরাসরি অডিও থেকে ট্রান্সক্রাইব করতে ASR ব্যবহার করুন। webhook কলব্যাক বা বিল্ট-ইন পোলিং সমর্থিত।
const result = await yt.transcribe({
video: "VIDEO_ID",
source: "asr",
allow_asr: true,
webhook_url: "https://yoursite.com/webhook",
});const result = await yt.transcribe({
video: "VIDEO_ID",
source: "asr",
allow_asr: true,
});
if (result.job_id) {
const final = await yt.waitForJob(result.job_id, {
interval: 5000,
maxAttempts: 60,
});
console.log(final.data?.transcript.text);
}const result = await yt.transcribe({
video: "VIDEO_WITHOUT_CAPTIONS",
source: "asr",
// allow_asr not set: V2 requires explicit confirmation
});
if (result.status === "requires_asr_confirmation") {
console.log(result.estimated_credits); // e.g. 5
console.log(result.duration_minutes); // e.g. 7.5
// User confirms → retry with allow_asr
const confirmed = await yt.transcribe({
video: "VIDEO_WITHOUT_CAPTIONS",
source: "asr",
allow_asr: true,
});
}এরর হ্যান্ডলিং
import {
YouTubeTranscript,
InvalidRequestError,
AuthenticationError,
InsufficientCreditsError,
NoCaptionsError,
RateLimitError,
} from "youtube-transcript-api";
try {
await yt.getTranscript("invalid");
} catch (error) {
if (error instanceof AuthenticationError) {
console.log("Bad API key");
} else if (error instanceof InsufficientCreditsError) {
console.log("Top up at https://youtubetranscript.dev/pricing");
} else if (error instanceof NoCaptionsError) {
console.log("No captions: try source: 'asr' with allow_asr: true");
} else if (error instanceof RateLimitError) {
console.log(`Rate limited. Retry after ${error.retryAfter}s`);
}
}কনফিগারেশন
const yt = new YouTubeTranscript({
apiKey: "your_api_key",
baseUrl: "https://...", // Override API base URL
timeout: 60_000, // Request timeout in ms (default: 30s)
});Node.js 18+ প্রয়োজন (নেটিভ fetch ব্যবহার করে)। আপনার API key নিন এখান থেকে: youtubetranscript.dev/dashboard/account.
অন্যান্য SDK ও টুল
কখন কোনটি ব্যবহার করবেন
NPM প্যাকেজ
Node.js অ্যাপ্লিকেশন, সার্ভার-সাইড রেন্ডারিং, CLI টুল ও স্বয়ংক্রিয় স্ক্রিপ্টের জন্য সেরা, যেখানে প্রোগ্রামেটিক অ্যাক্সেস দরকার।
REST API
নন-JavaScript পরিবেশ, এককালীন অনুরোধ এবং ভাষা-নিরপেক্ষ HTTP অ্যাক্সেসের জন্য সেরা।
MCP সার্ভার
Claude, Cursor ও VS Code Copilot-এর মতো AI কোডিং অ্যাসিস্ট্যান্টের জন্য সেরা, যেখানে আপনি স্বাভাবিক ভাষায় যোগাযোগ চান।
সচরাচর জিজ্ঞাসিত প্রশ্ন
NPM প্যাকেজ কি ব্যবহারে বিনামূল্যে?+
প্যাকেজটি ইনস্টল করা বিনামূল্যে। অনুরোধ পাঠাতে আপনার একটি YouTubeTranscript.dev API key লাগবে। API key সব পেইড প্ল্যানে পাওয়া যায়।
এটি কি ব্রাউজারে কাজ করে?+
প্যাকেজটি Node.js সার্ভার-সাইড ব্যবহারের জন্য তৈরি। ব্রাউজার-ভিত্তিক এক্সট্র্যাকশনের জন্য fetch বা axios দিয়ে সরাসরি আমাদের REST API ব্যবহার করুন।
কোন Node.js সংস্করণ সমর্থিত?+
Node.js 18 ও তার উপরে। প্যাকেজটি নেটিভ fetch ও আধুনিক JavaScript ফিচার ব্যবহার করে।
আমি কি এটি Deno বা Bun-এর সাথে ব্যবহার করতে পারি?+
হ্যাঁ, প্যাকেজটি NPM প্যাকেজ সমর্থন করে এমন Deno ও Bun রানটাইমের সাথে সামঞ্জস্যপূর্ণ।
NPM প্যাকেজ দিয়ে তৈরি শুরু করুন
কয়েক সেকেন্ডে ইনস্টল করুন। সম্পূর্ণ TypeScript সমর্থন। বিস্তারিত ডকুমেন্টেশন।
NPM-এ দেখুন →