עבודה עם מזהי ערוצים

ג'ף פוזניק, קשרי מפתחים ב-YouTube – יוני 2013

במשך יותר משנה, ניתן היה לקשר פרופילים של Google+ לערוצי YouTube, ופרסמנו בבלוג על האופן שבו חלק מהתגובות ב-Data API v2 השתנו כתוצאה מקישור הפרופיל. לאחרונה ניתן היה ליצור ערוצי YouTube חדשים שלא משויך אליהם שם משתמש מסורתי של YouTube, ובמקום זאת מזוהים רק על ידי פרופיל Google+ שלהם. רוב המידע מהפוסט בבלוג עדיין רלוונטי, אבל הקמט הנוסף הזה מבטל את ההנחות הבסיסיות בנוגע לערוצי YouTube - כמו למשל, שכל אחד מהם יהיה משויך תמיד לשם משתמש ייחודי ב-YouTube - ורצינו להוסיף עוד כמה שיטות מומלצות לכתיבת קוד שפועל עם כל הטעמים של הערוצים.

מזהי ערוצים ב-Data API v3

כל הפעולות בגרסה 3, שפועלות עם ערוצים, משתמשות אך ורק במזהי ערוצים כאמצעי לזיהוי הערוצים האלה. המזהה של ערוץ משתמש ספציפי ב-YouTube זהה בגרסאות 2 ו-3 של ה-API, וכך קל יותר להעביר נתונים בין גרסאות. ההסתמכות המלאה הזו על מזהי ערוצים עשויה להיות מבלבלת עבור מפתחים שהשתמשו בעבר בהעברת שמות משתמשים ב-YouTube לשיטות API, אבל גרסה 3 נועדה לטפל בערוצים עם או בלי שמות משתמש מדור קודם באופן זהה, כלומר להשתמש במזהי ערוצים בכל מקום.

אם אתם משתמשים בגרסה 3 ואתם רוצים לאחזר את מזהה הערוץ שתואם למשתמש המורשה הנוכחי, אתם יכולים להפעיל את השיטה channels.list(part="id", mine=true). פעולה זו מקבילה לבקשת פרופיל ערוץ של משתמש default בגרסה 2.

אם בעתיד תיתקלו בשם משתמש שרירותי ב-YouTube שתצטרכו לתרגם למזהה הערוץ באמצעות גרסה 3 של ה-API, תוכלו לבצע קריאה ל-API של channels.list(part="id", forUsername="username").

אם אתם רק יודעים את השם המוצג ורוצים למצוא את הערוץ המתאים, השיטה search.list(part="snippet", type="channel", q="display name") תהיה שימושית עבורכם. עליך להתכונן להתמודדות עם האפשרות שהשיחה תחזיר יותר מפריט אחד, מכיוון שהשמות לתצוגה אינם ייחודיים.

מזהי ערוצים ב-Data API v2

הערה: ממשק ה-API של YouTube Data (v2) הוצא משימוש ב-26 בפברואר 2014, וה-API הושבת. אפליקציות שעדיין משתמשות ב-v2 API צריכות לעבור מיד ל-v3 API.

המסקנה העיקרית למפתחים שמשתמשים ב-Data API v2 הישן יותר היא שיש לוודא שלא כל ערוץ YouTube כולל שם משתמש ייחודי. מזל שלכל ערוץ YouTube יש מזהה ייחודי שמשויך אליו. המזהה מיוצג על-ידי הערך בתג <yt:channelId>, והערך הזה מומלץ למפתחים להשתמש בו במקום בשמות המשתמשים. לדוגמה, אם יש לך מסד נתונים שממפה שמות משתמשים ב-YouTube למידע על הערוץ הזה, הערכים הישנים שלך אמורים להמשיך לפעול. (ערוצים קיימים לא יאבדו את שמות המשתמשים שלהם.) עם הזמן, תגדל הסבירות שתצטרכו לעבוד עם ערוצים שלא ניתן לזהות אותם באופן ייחודי באמצעות שם משתמש.

יש כמה גורמים המפשטים את המעבר משמות המשתמשים למזהי הערוצים. קודם כל, Data API v2 מקבל מזהי ערוצים בכתובות URL של בקשות בכל מקום שבו הוא מקבל שמות משתמשים ב-YouTube, כך שאתם יכולים להחליף בצורה חלקה את מזהה הערוץ בקוד הקיים שלכם. לדוגמה, בגלל ש-UC_x5XG1OV2P6uZZ5FSM9Ttw הוא מזהה הערוץ עבור הערוץ עם שם המשתמש הקודם GoogleDevelopers, שתי כתובות ה-URL הבאות הן בקשות API מקבילות:

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.