ویژگی متن YouTube با پروکسی

ویژگی متن YouTube یک منبع قدرتمند اما غالباً نادیده گرفته است. در حالی که هیچ نقطه پایانی رسمی API برای دسترسی به رونوشت ها وجود ندارد ، ما می توانیم به صورت برنامه ای آنها را واکشی کنیم. در این مقاله ، من به شما نشان خواهم داد که چگونه با API متن مخفی YouTube کار کنید و بینش هایی را از ساخت یک کتابخانه TypeScript برای این منظور به اشتراک بگذارید.
درک رونوشت های YouTube
YouTube رونوشت هایی را برای بسیاری از فیلم ها ، چه تولید خودکار یا به صورت دستی اضافه می کند. این نسخه ها شامل موارد زیر است:
- محتوای متن
- Timestamps برای هر بخش
- اطلاعات مدت زمان
- اطلاعات زبانی
اجرای فنی
در اینجا نحوه واکشی رونوشت ها با استفاده از TypeScript آورده شده است:
import { YoutubeTranscript } from 't-youtube-transcript-fetcher';
// Basic usage with video URL
const transcript = await YoutubeTranscript.fetchTranscript(
'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
);
// Using video ID with specific language
const spanishTranscript = await YoutubeTranscript.fetchTranscript(
'dQw4w9WgXcQ',
{ lang: 'es' }
);
پاسخ مجموعه ای از بخش های متن است:
interface TranscriptSegment {
text: string; // The text content
duration: number; // Duration in seconds
offset: number; // Start time in seconds
lang: string; // Language code
}
رسیدگی به موارد لبه
هنگام کار با API متن YouTube ، باید سناریوهای مختلفی را اداره کنید:
- محدود کردن نرخ: اگر تعداد زیادی از آنها در پی در پی سریع انجام شوند ، یوتیوب ممکن است درخواست های محدود را نرخ دهد
- فیلم های خصوصی: برخی از فیلم ها ممکن است خصوصی یا در دسترس نباشند
- رونوشتهای غیرفعال: سازندگان محتوا می توانند رونوشت ها را غیرفعال کنند
- در دسترس بودن زبان: ممکن است همه زبانها برای هر ویدیو در دسترس نباشند
در اینجا نحوه اجرای رسیدگی به خطای قوی آورده شده است:
try {
const transcript = await YoutubeTranscript.fetchTranscript(videoId);
// Process transcript
} catch (error) {
if (error instanceof RateLimitError) {
console.error('Too many requests, try again later');
} else if (error instanceof VideoUnavailableError) {
console.error('Video is private or doesn\'t exist');
} else if (error instanceof TranscriptDisabledError) {
console.error('Transcripts are disabled for this video');
} else if (error instanceof NoTranscriptError) {
console.error('No transcripts available');
} else if (error instanceof LanguageNotFoundError) {
console.error('Requested language not available');
}
}
استفاده پیشرفته: پشتیبانی پروکسی
برای سناریوهایی که به پشتیبانی پروکسی نیاز دارند (به عنوان مثال ، رسیدگی به محدودیت های جغرافیایی یا تعادل بار) ، می توانید تنظیمات پروکسی را پیکربندی کنید:
import { HttpsProxyAgent } from 'https-proxy-agent';
// Using a pre-configured proxy agent
const proxyAgent = new HttpsProxyAgent('https://username:password@proxy.example.com:8080');
const transcript = await YoutubeTranscript.fetchTranscript('VIDEO_ID', {
proxyAgent: proxyAgent
});
// Alternative: Using proxy configuration object
const transcriptWithProxyConfig = await YoutubeTranscript.fetchTranscript('VIDEO_ID', {
proxy: {
host: 'http://proxy.example.com:8080',
auth: {
username: 'your-username',
password: 'your-password'
}
}
});
برنامه های کاربردی
این دسترسی API برنامه های مختلفی را امکان پذیر می کند:
- تجزیه و تحلیل محتوا: تجزیه و تحلیل محتوای ویدیویی به صورت برنامه ای
- تولید زیرنویس: زیرنویس های سفارشی یا زیرنویس های بسته ایجاد کنید
- فهرست بندی جستجو: محتوای ویدیویی را قابل جستجو کنید
- ابزارهای یادگیری زبانی: ابزاری برای مطالعه محتوا به زبانهای مختلف بسازید
- ویژگی های دسترسی: دسترسی به فیلم با محتوای مبتنی بر متن را بهبود بخشید
بهترین روشها
هنگام کار با API متن YouTube:
- محدود کردن نرخ: برای جلوگیری از ضربه زدن به محدودیت ها ، تأخیرها را بین درخواست ها اضافه کنید
- نتایج حافظه نهان: رونوشت ها را برای به حداقل رساندن تماس های API ذخیره کنید
- زبان ها را با لطف اداره کنید: قبل از درخواست ترجمه های خاص ، در دسترس بودن زبان را بررسی کنید
- اعتبارسنجی ورودی: اطمینان حاصل کنید که شناسه های ویدئویی/URL ها قبل از درخواست معتبر هستند
- چرخش پروکسی را در نظر بگیرید: برای برنامه های در مقیاس بزرگ ، از طریق چندین پروکسی بچرخید
پایان
API متن پنهان YouTube قابلیت های قدرتمندی را برای توسعه دهندگان ارائه می دهد. در حالی که به طور رسمی مستند نشده است ، در صورت انجام صحیح ، دسترسی قابل اعتماد به نسخه های ویدئویی را فراهم می کند. اجرای TypeScript که در اینجا نشان داده شده است ، نشان می دهد که چگونه می توان در ضمن رسیدگی به موارد لبه و ارائه پشتیبانی از پروکسی برای برنامه های قوی تر ، به این قابلیت دسترسی پیدا کرد.
اجرای کامل به عنوان یک بسته NPM در دسترس است: T-Youtube-Transcript-Fetcher. برای اطلاعات بیشتر و نمونه های اجرای ، کد منبع را در GitHub بررسی کنید.
به یاد داشته باشید که به شرایط خدمات YouTube احترام بگذارید و محدود کردن نرخ مناسب در برنامه های خود را اجرا کنید. برنامه نویسی مبارک! 🚀