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

Jarek Wilkiewicz, צוות YouTube API
ספטמבר 2010

מבוא

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

מתבצע תיעוד

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

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

או מפעילים את UIImagePickerController ב-iPhone iOS:

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

ניתן לשלב את כל הפונקציות האלה באפליקציה לנייד באמצעות ספריות לקוח שספציפיות לשפת התכנות, או באמצעות אינטראקציה ישירה עם שרתי ה-API של YouTube ב-HTTP. הגישה הראשונה מסננת את רוב המורכבות של הפרוטוקול, אבל על חשבון הגדלת טביעת הרגל של האפליקציה. הגישה השנייה מאפשרת ליצור אינטראקציות באופן ידני עם שירותי ה-API הספציפיים שבהם האפליקציה שלכם משתמשת. בסופו של דבר, הבחירה היא ספציפית לאפליקציה. כדי להתחיל, אפשר לעיין בספריית GData ל-Java ל-Android או בספריית GData ל-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 Player, אתם יכולים להוריד אפליקציה כזו. אפליקציה לנייד מפעילה נגן באמצעות שירות פלטפורמה. לדוגמה, ב-Android, אפליקציה משתמשת ב-Intent‏ ACTION_VIEW, וב-iPhone אפליקציה יכולה להפעיל את הנגן באמצעות השיטה openURL של הכיתה UIApplication, כפי שמתואר בפוסט הזה בבלוג.
  • אתר YouTube לנייד, http://m.youtube.com, מאפשר לכם לשלב בקלות הפעלת סרטונים באפליקציית אינטרנט.
  • לשליטה מדויקת יותר בחוויית ההפעלה, אפליקציות בפלטפורמות שתומכות ב-Adobe Flash יכולות להרחיב את נגן YouTube מסוג AS3 כדי להציע הפעלה באיכות גבוהה יותר.