📦 NPM প্যাকেজ

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

কুইক স্টার্ট

TypeScript
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

কোনো সেটআপ ছাড়াই দুটো মডিউল সিস্টেমেই কাজ করে।

অপশনসহ ট্রান্সক্রাইব করুন

TypeScript
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

ব্যাচ প্রসেসিং (সর্বোচ্চ ১০০টি ভিডিও)

TypeScript
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 কলব্যাক বা বিল্ট-ইন পোলিং সমর্থিত।

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);
}
ASR নিশ্চিতকরণ ফ্লো
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,
  });
}

এরর হ্যান্ডলিং

TypeScript
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`);
  }
}
এরর ক্লাসHTTP
InvalidRequestError400
AuthenticationError401
InsufficientCreditsError402
NoCaptionsError404
RateLimitError429
YouTubeTranscriptErrorঅন্যান্য

কনফিগারেশন

TypeScript
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 ও টুল

ভাষাপ্যাকেজ
PythonPyPI-তে youtubetranscriptdevapi
Dart / Flutterpub.dev-এ youtubetranscript
MCP সার্ভারmcp.youtubetranscript.dev

কখন কোনটি ব্যবহার করবেন

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-এ দেখুন →

বিনামূল্যে ট্রান্সক্রিপ্ট বের করা শুরু করুন

যেকোনো YouTube ভিডিও সেকেন্ডেই টেক্সটে রূপান্তর করুন। কোনো ক্রেডিট কার্ড লাগবে না।

YOUTUBETRANSCRIPT.DEV ব্যবহার করে দেখুন →
YouTube Transcript NPM প্যাকেজ | YouTubeTranscript.dev