کار با شناسه‌های کانال

جف پوزنیک، روابط توسعه‌دهندگان YouTube – ژوئن ۲۰۱۳

بیش از یک سال است که امکان پیوند دادن نمایه‌های Google+‎ با کانال‌های YouTube وجود دارد و ما در وبلاگ خود درباره اینکه چگونه برخی‌از پاسخ‌های Data API v2 در نتیجه آن پیوند نمایه تغییر کرده‌اند، توضیح داده‌ایم. اخیراً امکان ایجاد کانال‌های جدید YouTube که نام کاربری سنتی YouTube مرتبط با آن‌ها ندارند، فراهم شده است و درعوض، تنها با نمایه Google+ خود شناسایی می‌شوند. بسیاری از اطلاعات آن پست وبلاگ هنوز هم اعمال می‌شود، اما این پیچیدگی اضافی برخی از فرضیات اساسی درباره کانال‌های YouTube را باطل می‌کند – مانند اینکه هر کانال همیشه با یک نام کاربری YouTube منحصربه‌فرد مرتبط خواهد بود – و ما می‌خواستیم با برخی از بهترین شیوه‌های اضافی برای نوشتن کدی که با همه انواع کانال‌ها کار می‌کند، پیگیری کنیم.

شناسه‌های کانال در Data API v3

همه عملیات نسخه ۳ که با کانال‌ها کار می‌کنند، منحصراً از شناسه‌های کانال به‌عنوان وسیله‌ای برای شناسایی آن کانال‌ها استفاده می‌کنند. شناسه کانال یک کاربر خاص YouTube در هر دو نسخه ۲ و ۳ API یکسان است، که انتقال بین نسخه‌ها را ساده می‌کند. این اتکای کامل به شناسه‌های کانال ممکن است برای توسعه‌دهندگانی که قبلاً عادت داشتند نام‌های کاربری YouTube را به روش‌های API منتقل کنند، گیج‌کننده باشد، اما نسخه ۳ به‌گونه‌ای طراحی شده است که با کانال‌های دارای نام‌های کاربری قدیمی و بدون آن‌ها به‌طور یکسان رفتار کند، و این به معنای استفاده از شناسه‌های کانال در همه جا است.

اگر از نسخه ۳ استفاده می‌کنید و می‌خواهید شناسه کانال مربوط به کاربر مجاز فعلی را بازیابی کنید، می‌توانید روش channels.list(part="id", mine=true) را فراخوانی کنید. این معادل درخواست نمایه کانال کاربر default در نسخه ۲ است.

اگر با نام کاربری قدیمی YouTube مواجه شدید که باید آن را بااستفاده از نسخه ۳ API به شناسه کانال تبدیل کنید، می‌توانید یک تماس channels.list(part="id", forUsername="username") با API برقرار کنید.

اگر فقط نام نمایشی را می‌دانید و می‌خواهید کانال مربوطه را پیدا کنید، روش search.list(part="snippet", type="channel", q="display name") مفید خواهد بود. باید آماده باشید که با احتمال بازگشت بیش از یک مورد در پاسخ تماس مواجه شوید، زیرا نام‌های نمایشی یکتا نیستند.

شناسه‌های کانال در Data API نسخه ۲

توجه: YouTube Data API (نسخه ۲) از ۲۶ فوریه ۲۰۱۴ منسوخ شده است و این API غیرفعال شده است. برنامه‌هایی که هنوز از API نسخه ۲ استفاده می‌کنند باید فوراً به API نسخه ۳ منتقل شوند.

مهم‌ترین نکته برای توسعه‌دهندگانی که از Data API نسخه ۲ قدیمی‌تر استفاده می‌کنند این است که باید بدانید همه کانال‌های YouTube نام کاربری منحصربه‌فرد ندارند. خوشبختانه، هر کانال YouTube دارای یک شناسه کانال منحصربه‌فرد است که با آن مرتبط است و با مقدار موجود در برچسب <yt:channelId> نشان داده می‌شود، و این مقداری است که توصیه می‌کنیم توسعه‌دهندگان به‌جای نام‌های کاربری از آن استفاده کنند. برای مثال، اگر پایگاه داده‌ای دارید که نام‌های کاربری YouTube را به اطلاعات مربوط به آن کانال نگاشت می‌کند، ورودی‌های قدیمی‌تر شما باید همچنان کار کنند. (کانال‌های موجود نام کاربری‌شان را ازدست نخواهند داد.) بااین‌حال، با گذشت زمان، احتمال اینکه مجبور شوید با کانال‌هایی کار کنید که نمی‌توان آن‌ها را به‌طور منحصربه‌فرد با نام کاربری شناسایی کرد، بیشتر و بیشتر می‌شود.

چند عامل انتقال از نام‌های کاربری به شناسه‌های کانال را ساده‌تر می‌کنند. اول اینکه Data API v2 شناسه کانال را در نشانی‌های وب درخواست هرجا که نام کاربری YouTube را بپذیرد قبول می‌کند، یعنی می‌توانید به‌راحتی شناسه کانال را در کد موجودتان جایگزین کنید. برای مثال، ازآنجایی‌که UC_x5XG1OV2P6uZZ5FSM9Ttw شناسه کانال با نام کاربری قدیمی GoogleDevelopers است، دو نشانی وب زیر درخواست‌های معادل API هستند:

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

نکته دیگری که باید در نظر داشته باشید این است که هر زمان که درخواست‌های v2 احراز هویت شده را انجام می‌دهید، هرگز نیازی به درج نام کاربری کانال مجاز هنگام ساخت نشانی‌های وب درخواست ندارید. همیشه می‌توانید از مقدار default به‌جای نام کاربری (یا شناسه کانال) استفاده کنید. بنابراین، اگر می‌خواهید فید بارگذاری‌های ویدیو را برای کاربر مجاز فعلی بازیابی کنید، برای مثال، می‌توانید این کار را در https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1 انجام دهید.