نحن بصدد تعديل Data API لتتطابق مع طريقة YouTube في احتساب مشاهدات Shorts.
مزيد من المعلومات
استخدام معرّفات القنوات
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
جيف بوسنيك، مدير علاقات المطوّرين في YouTube، حزيران (يونيو) 2013
منذ أكثر من عام، أصبح بإمكانك ربط الملفات الشخصية على Google+ بالقنوات على YouTube، وقد نشرنا مقالة عن التغييرات التي طرأت على بعض ردود Data API v2 نتيجةً لربط الملف الشخصي. في الآونة الأخيرة، أصبح من الممكن إنشاء قنوات جديدة على YouTube لا تتضمّن اسم مستخدم عاديًا على YouTube، بل يتم التعرّف عليها من خلال ملفها الشخصي على Google+ فقط. لا تزال الكثير من المعلومات الواردة في هذه المقالة سارية، ولكنّ هذه المشكلة الجديدة تبطل بعض الافتراضات الأساسية حول قنوات YouTube، مثل أنّ كل قناة ستكون مرتبطة دائمًا باسم مستخدم فريد على YouTube. أردنا متابعة هذه المقالة ببعض أفضل الممارسات الإضافية لكتابة رموز برمجية تعمل مع جميع أنواع القنوات.
معرّفات القنوات في الإصدار 3 من Data API
إنّ جميع عمليات الإصدار 3 التي تعمل مع القنوات تستخدم معرّفات القنوات حصريًا كوسيلة لتحديد هذه القنوات. يكون معرّف قناة مستخدم معيّن على YouTube مطابقًا في كل من الإصدار 2 والإصدار 3 من واجهة برمجة التطبيقات، ما يسهّل نقل البيانات بين الإصدارَين. قد يكون هذا الاعتماد الكامل على معرّفات القنوات مربكًا للمطوّرين الذين اعتادوا في السابق على ضبط أسماء مستخدمين على YouTube في طرق واجهة برمجة التطبيقات، ولكن تم تصميم الإصدار 3 للتعامل مع القنوات التي تتضمّن أسماء مستخدمين قديمة أو لا تتضمّنها بشكلٍ متطابق، ما يعني استخدام معرّفات القنوات في كل مكان.
إذا كنت تستخدم الإصدار 3 وتريد استرداد معرّف القناة الذي يخصّ المستخدم المفوَّض حاليًا، يمكنك استدعاء الطريقة channels.list(part="id", mine=true)
. ويعادل ذلك طلب الملف الشخصي للقناة للمستخدم default
في الإصدار 2.
إذا كان لديك اسم مستخدم قديم عشوائي على YouTube وتريد تحويله إلى معرّف قناة باستخدام الإصدار 3 من واجهة برمجة التطبيقات، يمكنك إجراء channels.list(part="id", forUsername="username")
طلب إلى واجهة برمجة التطبيقات.
إذا كنت تعرف اسمًا معروضًا فقط وتبحث عن القناة المقابلة له، ستكون طريقة search.list(part="snippet", type="channel", q="display name")
مفيدة. يجب أن تكون مستعدًا للتعامل مع احتمالية أن يعرض الطلب أكثر من عنصر واحد في الردّ، لأنّ الأسماء المعروضة ليست فريدة.
معرّفات القنوات في الإصدار 2 من Data API
ملاحظة: تم إيقاف استخدام YouTube Data API (الإصدار 2) نهائيًا منذ 26 شباط (فبراير) 2014، وتم إيقاف واجهة برمجة التطبيقات. على التطبيقات التي لا تزال تستخدم الإصدار 2 من واجهة برمجة التطبيقات نقل بياناتها إلى الإصدار 3 من واجهة برمجة التطبيقات على الفور.
إنّ أهم ملاحظة للمطوّرين الذين يستخدمون الإصدار القديم من Data API v2 هي أنّه ليس لكل قناة على YouTube اسم مستخدم فريد. لحسن الحظ، تتضمّن كل قناة على YouTube معرّفًا فريدًا يرتبط بها، ويُمثّل هذه القيمة في علامة <yt:channelId>
، وهي القيمة التي ننصح المطوّرين باستخدامها بدلاً من الأسماء المعرِّفة. على سبيل المثال، إذا كانت لديك قاعدة بيانات تربط أسماء مستخدمي YouTube بمعلومات عن هذه القناة، من المفترض أن تستمر الإدخالات القديمة في العمل. (لن تفقد القنوات الحالية أسماء المستخدمين الخاصة بها). ومع مرور الوقت، سيزداد احتمال أن تتعامل مع قنوات لا يمكن تحديدها بشكل فريد باستخدام اسم مستخدم.
هناك عاملان يبسطان عملية الانتقال من الأسماء المعرِّفة للمستخدمين إلى أرقام تعريف القنوات. أولاً، يقبل الإصدار 2 من Data API أرقام تعريف القنوات في عناوين URL للطلبات حيث يقبل أسماء مستخدمي YouTube، ما يعني أنّه يمكنك استبدال رقم تعريف قناة بسلاسة في الرمز البرمجي الحالي. على سبيل المثال، بما أنّ UC_x5XG1OV2P6uZZ5FSM9Ttw
هو معرّف القناة التي تحمل اسم المستخدم القديم GoogleDevelopers
، فإنّ عنوانَي URL التاليَين هما طلبَا بيانات متكافئَين من واجهة برمجة التطبيقات:
https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1
يُرجى العلم أيضًا أنّه عند إرسال طلبات الإصدار 2 المؤهَّلة، لن تحتاج أبدًا إلى تضمين اسم مستخدم القناة المعتمَدة عند إنشاء عناوين URL للطلبات. يمكنك دائمًا استخدام القيمة default
بدلاً من اسم مستخدم (أو معرّف القناة). على سبيل المثال، إذا أردت استرداد خلاصة عمليات تحميل الفيديو للمستخدم المفوَّض حاليًا، يمكنك إجراء ذلك على الرابط https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1
.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-23 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2024-11-23 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eYouTube channels can now be identified solely by their Google+ profile, without a traditional YouTube username.\u003c/p\u003e\n"],["\u003cp\u003eThe YouTube Data API v3 exclusively uses channel IDs to identify channels, offering consistency for channels with or without legacy usernames.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use the \u003ccode\u003echannels.list\u003c/code\u003e method in v3 to retrieve a channel ID based on the authorized user or a legacy username.\u003c/p\u003e\n"],["\u003cp\u003eIn v2, it's crucial to recognize that not every YouTube channel has a unique username, but all have a unique channel ID, which is the recommended identifier.\u003c/p\u003e\n"],["\u003cp\u003eThe deprecated Data API v2 can use channel IDs in place of usernames in request URLs, and \u003ccode\u003edefault\u003c/code\u003e can be used instead of usernames for authenticated v2 requests.\u003c/p\u003e\n"]]],["YouTube introduced channels solely identified by Google+ profiles, lacking traditional usernames. Data API v3 exclusively uses channel IDs to identify channels, simplifying the process for developers. To get the authorized user's channel ID, use `channels.list(part=\"id\", mine=true)`. To translate a username to a channel ID, use `channels.list(part=\"id\", forUsername=\"username\")`. For display names, use `search.list(part=\"snippet\", type=\"channel\", q=\"display name\")`. Data API v2, now deprecated, also utilizes channel IDs, allowing them to replace usernames in requests.\n"],null,["# Work with Channel IDs\n\n*Jeff Posnick, YouTube Developer Relations -- June 2013*\nFor more than a year, it's been possible to link Google+ profiles with YouTube channels, and we've [blogged](http://apiblog.youtube.com/2012/03/youtube-google-api-and-you.html) about how some of the Data API v2 responses have changed as a result of that profile link. More recently, it has become possible to create new YouTube channels that don't have a traditional YouTube username associated with them and, instead, are [solely identified by their Google+ profile](http://youtubecreator.blogspot.com/2013/04/using-google-page-identity-on-youtube.html). Much of the information from that blog post still applies, but this extra wrinkle does invalidate some fundamental assumptions about YouTube channels -- like that each one will always be associated with a unique YouTube username -- and we wanted to follow up with some additional best practices to write code that works with all flavors of channels.\n\nChannel IDs in the Data API v3\n------------------------------\n\nAll v3 operations that work with channels use [channel IDs](/youtube/v3/docs/channels#id) exclusively as a means of identifying those channels. The ID for a specific YouTube user's channel is identical in both v2 and v3 of the API, simplifying migrations between versions. This complete reliance on channel IDs might be perplexing for developers who were previously used to passing YouTube usernames to API methods, but v3 was designed to treat channels with and without legacy usernames identically, and that means using channel IDs everywhere.\n\nIf you are using v3 and want to retrieve the channel ID that corresponds to the currently authorized user, you can call the [channels.list(part=\"id\", mine=true)](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=id&mine=true) method. This is equivalent to asking for the channel profile of the `default` user in v2.\n\nIf you ever do find yourself with an arbitrary legacy YouTube username that you need to translate into a channel ID using v3 of the API, you can make a [channels.list(part=\"id\", forUsername=\"\u003cvar class=\"apiparam\" translate=\"no\"\u003eusername\u003c/var\u003e\")](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=id&forUsername=YouTubeDev) call to the API.\n\nIf you only know a display name and are looking to find the corresponding channel, the [search.list(part=\"snippet\", type=\"channel\", q=\"\u003cvar class=\"apiparam\" translate=\"no\"\u003edisplay name\u003c/var\u003e\")](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&q=YouTube+for+Developers&type=channel) method will come in handy. You should be prepared to deal with the possibility of the call returning more than one item in the response, since display names are not unique.\n\nChannel IDs in the Data API v2\n------------------------------\n\n**Note:** The YouTube Data API (v2) has been deprecated since February 26, 2014, and the API has been [turned down](http://youtube-eng.blogspot.com/2015/04/bye-bye-youtube-data-api-v2.html). Applications still using the v2 API should migrate to the v3 API immediately.\n\nThe biggest takeaway for developers using the older [Data API v2](/youtube/2.0/developers_guide_protocol_audience) is that you must be aware that **not every YouTube channel has a unique username** . Fortunately, every YouTube channel is guaranteed to have a unique channel ID associated with it, represented by the value in the [`\u003cyt:channelId\u003e` tag](/youtube/2.0/reference#youtube_data_api_tag_yt:channelId), and that's the value that we recommend developers use instead of usernames. For instance, if you have a database that maps YouTube usernames to information about that channel, your older entries should continue to work. (Existing channels won't lose their usernames.) However, as time goes on, it will become more and more likely that you'll have to work with channels that can't be uniquely identified by a username.\n\nA couple of factors simplify the transition from usernames to channel IDs. First, the Data API v2 accepts channel IDs in request URLs wherever it accepts YouTube usernames, meaning that you can seamlessly swap a channel ID into your existing code. For example, since `UC_x5XG1OV2P6uZZ5FSM9Ttw` is the channel ID for the channel with the legacy username `GoogleDevelopers`, the following two URLs are equivalent API requests: \n\n https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1\n https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1\n\nAnother thing to keep in mind is that whenever you're making [authenticated](/youtube/2.0/developers_guide_protocol_authentication) v2 requests, you never need to include the authorized channel's username when constructing request URLs. You can always use the value `default` in place of a username (or channel ID). So if you want to retrieve the video uploads feed for the currently authorized user, for instance, you can do so at `https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1`."]]