משאבים לפיתוח הנייד באמצעות YouTube

ג'ארק וילקביץ', צוות YouTube API
ספטמבר 2010

מבוא

מפתחים שרוצים לשלב באפליקציות שלהם בנייד סרטונים, העלאה, שיתוף והפעלה שלהם יכולים להשתמש בפלטפורמה של YouTube כדי לפשט את העבודה ולשפר את המוצרים הסופיים שלהם. המאמר הזה מדגיש כמה מהטכנולוגיות שעשויות לשמש אתכם באפליקציות שלכם.

מתבצעת הקלטה

תהליך הקלטת הווידאו מתבצע באמצעות הפלטפורמה הבסיסית לנייד. לדוגמה, האפליקציה שלכם יכולה להפעיל כוונה (VIDEO_CAPTURE) ב-Android:

Intent i = new Intent();
i.setAction(MediaStore.VIDEO_CAPTURE);
startActivityForResult(i, CAPTURE_RETURN);

או הפעל את UIImageSelecterController ב-iPhone:

IImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[self presentModalViewController:imagePicker animated:YES];

לאפשרויות מתקדמות יותר של הקלטה ב-iOS 4 ואילך, אפשר גם להשתמש במחלקה AVCaptureSession מ-AV Foundation Framework.  

מעלה

האפליקציה שלכם יכולה להעלות סרטון ואת המטא-נתונים שלו ל-YouTube על ידי שליחת אימייל לכתובת אימייל מיוחדת המשויכת לחשבון YouTube של המשתמש או באמצעות אחת משלוש שיטות API: העלאה מבוססת דפדפן, העלאה ישירה או העלאה ישירה שניתן להמשיך. באפליקציות לנייד, האפשרות ההעלאה הישירה הניתנת לחידוש היא הבחירה המהימנה ביותר מפני שהיא מאפשרת לאפליקציה להתאושש באופן מוצלח מכשלים בקישוריות ולהמשיך את ההעלאה מרגע הכשל. פרוטוקול ההעלאה המתחדש של YouTube ממנף את מנגנון ה-Content-Range/Range של HTTP 1.1 כדי להעביר סרטונים בקבוצות, ובמקרה של הפרעה, כדי לזהות את מספר הבייטים שהועברו בהצלחה.

תוכן הסרטון הוא המרכיב החשוב ביותר בהעלאה, אבל המטא-נתונים של הסרטון הם חלק בלתי נפרד מהתהליך, כי המטא-נתונים מאפשרים למשתמשים לאתר סרטונים בחיפוש וגם מאפשרים שימוש בתכונות אחרות המתוארות בהמשך המאמר. בנוסף לרכיבים נפוצים כמו קטגוריה, תיאור וכותרת, אפליקציות לנייד יכולות לכלול נתוני מיקום גיאוגרפי בקלות ממכשיר ה-GPS של הטלפון שלך. בעזרת הנתונים האלה אפשר לבצע חיפוש מבוסס-מיקום או לשרטט מיקומים של סרטונים במפה. באפליקציות להעלאת סרטונים שמטרתן למזער את האינטראקציה של המשתמש, העלאות של מטא-נתונים הן אפשרות נוספת ומידע נוסף לגבי זה זמין בשיחת Google I/O הזו.

חלוקת הכנסות

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

ניתן לשלב את כל הפונקציות האלה באפליקציה לנייד באמצעות ספריות לקוח ספציפיות לשפה, או על ידי אינטראקציה ישירה עם שרתי ה-API של YouTube באמצעות HTTP. הגישה הקודמת מבטלת את רוב המורכבות של הפרוטוקולים על חשבון טביעת רגל גדולה יותר של האפליקציה. הגישה השנייה מאפשרת לך ליצור באופן ידני אינטראקציות עם שירותי ה-API הספציפיים שבהם משתמשת האפליקציה שלך. בסופו של דבר, הבחירה היא ספציפית לאפליקציה. כדי להתחיל, קראו את ספריית Java GData ל-Android או את ספריית יעדים של נתונים מ-Objective-C ל-iPhone. אפליקציות מורכבות יותר של סרטונים לנייד יכולות להועיל בשילוב עם קצה עורפי של השרת. אפליקציה אחת כזו היא YouTube Direct (איור 1), שמציגה קוד שרת של קוד פתוח שהוגדר מראש להפעלה ב-Google App Engine. בנוסף, הוא מפרט יישומים של לקוחות להעלאת סרטונים ל-Android (ytd-android, מוצג באיור 1) ו-iPhone (ytd-iphone).

אפליקציית YouTube Direct ל-Android
איור 1: אפליקציית YouTube Direct ל-Android

אבטחה

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

ה-API תומך בשלוש שיטות אימות: AuthSub, OAuth ו-ClientLogin. ClientLogin הוא השיטה הפשוטה ביותר לשימוש באפליקציות לנייד וב-AccountManager של Android אפשר להשיג בקלות אסימוני אימות. עם זאת, אפליקציות שמשלבות לקוח לנייד ושרתים עורפיים רבים באינטרנט כדאי לשקול להשתמש ב-OAuth, שהוא תקן פתוח, או ב-AuthSub, ספציפי ל-Google. באפליקציה הזו אפשר למצוא דוגמה של הטמעה של אימות OAuth ב-Android, ו-GDataOAuthViewControllerTouch להטמעה לדוגמה ב-iPhone iOS.  

הפעלה

ולבסוף, סרטונים קיימים כדי שאנשים יוכלו לצפות בהם. שוב, פלטפורמת YouTube מציעה כמה אפשרויות.

  • רוב הפלטפורמות המודרניות לנייד מגיעות עם אפליקציית נגן YouTube, המאפשרת שילוב מהיר. אם הפלטפורמה שלכם לא כוללת אפליקציית נגן של YouTube, תוכלו להוריד אפליקציה. אפליקציה לנייד מפעילה שחקן שמשתמש בשירות פלטפורמה. לדוגמה, ב-Android אפליקציה משתמשת בכוונה ACTION_VIEW, וב-iPhone אפליקציה יכולה להפעיל את הנגן באמצעות השיטה openURL של המחלקה UIApplication, כפי שמתואר בפוסט הזה בבלוג הזה.
  • האתר YouTube לנייד, http://m.youtube.com, מאפשר לך לשלב בקלות הפעלת וידאו ביישום אינטרנט.
  • לקבלת שליטה מדויקת יותר על חוויית ההפעלה, יישומים בפלטפורמות Adobe Flash יכולים להרחיב את נגן AS3 YouTube, המאפשר הפעלה באיכות גבוהה יותר.