مراجع حول تطوير التطبيقات المتوافقة مع الأجهزة الجوّالة باستخدام YouTube

"جارك ويلكيفيتش"، فريق YouTube API
أيلول (سبتمبر) 2010

مقدمة

يمكن للمطوّرين الذين يريدون دمج ميزات تسجيل الفيديوهات وتحميلها ومشاركتها وتشغيلها في تطبيقاتهم المتوافقة مع الأجهزة الجوّالة استخدام منصة YouTube لتبسيط عملهم وتحسين منتجاتهم النهائية. توضّح هذه المقالة بعض التقنيات التي قد تستخدمها في تطبيقاتك.

جارٍ التسجيل

يتم تنفيذ عملية تسجيل الفيديو باستخدام النظام الأساسي للأجهزة الجوّالة. على سبيل المثال، يمكن أن ينشّط تطبيقك هدف 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 Work.  

جارٍ التحميل

يمكن لتطبيقك تحميل فيديو وبياناته الوصفية إلى YouTube من خلال إرسال رسالة إلكترونية إلى عنوان بريد إلكتروني خاص مرتبط بحساب المستخدم على YouTube أو باستخدام إحدى الثلاث طرق المتاحة عبر واجهة برمجة التطبيقات: التحميل المستند إلى المتصفّح أو التحميل المباشر أو التحميل المباشر القابل للاستئناف. بالنسبة إلى تطبيقات الأجهزة الجوّالة، يُعد التحميل المباشر القابل للاستئناف الخيار الأكثر موثوقية لأنه يتيح للتطبيق استعادة البيانات بسلاسة من حالات تعذُّر الاتصال واستئناف التحميل من نقطة الفشل. يستفيد بروتوكول التحميل القابل للاستئناف من YouTube من آلية نطاق المحتوى/النطاق HTTP 1.1 لنقل الفيديوهات إلى أجزاء، وتحديد عدد وحدات البايت التي تم نقلها بنجاح في حال انقطاعها.

في حين أن محتوى الفيديو الفعلي هو المكون الأكثر أهمية في عملية التحميل، فإن بيانات التعريف للفيديو تعد جزءًا لا يتجزأ من العملية نظرًا لأن بيانات التعريف تتيح للمستخدمين تحديد موقع مقاطع الفيديو في البحث كما تمكن ميزات أخرى موصوفة لاحقًا في هذه المقالة. بالإضافة إلى العناصر الشائعة مثل الفئة والوصف والعنوان، يمكن لتطبيقات الأجهزة الجوّالة بسهولة تضمين بيانات الموقع الجغرافي من جهاز GPS في الهاتف. تتيح لك هذه البيانات توفير ميزة البحث المستنِد إلى الموقع الجغرافي أو عرض مواقع الفيديوهات على الخريطة. بالنسبة إلى تطبيقات تحميل الفيديو التي تسعى إلى تقليل تفاعل المستخدمين، تُعد عمليات التحميل بدون بيانات وصفية خيارًا آخر، ويمكنك الاطّلاع على مزيد من المعلومات حول ذلك من خلال محادثة Google I/O هذه.

المشاركة

توفّر YouTube Data API أيضًا وظائف غنية لأنشطة مشاركة الفيديوهات. مثل واجهات برمجة تطبيقات Google Data API الأخرى، تستخدم YouTube API بروتوكولًا مستوحى من REST يتيح تمثيل البيانات بتنسيقات Atom وJSON وJSON-C. إنّ استجابات واجهة برمجة التطبيقات المدمجة في JSON-C مناسبة بشكلٍ خاص للبيئات المتوافقة مع الأجهزة الجوّالة، والتي غالبًا ما تكون محدودة الموارد. تعرض واجهة برمجة التطبيقات وظائف مرنة للبحث عن الفيديو؛ إمكانية التعليق على الفيديوهات وتقييمها الوصول إلى الاشتراكات والفيديوهات المفضّلة وقوائم التشغيل ومحرك الاقتراحات ومجموعة من ميزات المنتدى التي تساعدك على دمج الفيديو في التطبيقات الاجتماعية.

يمكن دمج كل هذه الوظائف في تطبيق للأجهزة الجوّالة باستخدام مكتبات برامج خاصة بلغة البرمجة، أو من خلال التفاعل مباشرةً مع خوادم واجهة برمجة التطبيقات في YouTube عبر HTTP. يستخرج المنهج السابق معظم تعقيدات البروتوكول على حساب الأثر الأكبر للتطبيق. يتيح لك النهج الأخير إنشاء تفاعلات يدويًا مع خدمات واجهات برمجة التطبيقات المحدّدة التي يستخدمها تطبيقك. في النهاية، يكون الخيار خاصًا بالتطبيق. للبدء، يمكنك الاطّلاع على مكتبة Java GData لنظام التشغيل Android أو مكتبة واجهة GData ضمن الهدف-C لهاتف iPhone. قد تستفيد تطبيقات الفيديو المعقدة على الأجهزة الجوّالة من الدمج مع الخلفية في الخادم. ومن هذه التطبيقات YouTube Direct (الشكل 1)، الذي يتضمّن رمز خادم مفتوح المصدر تم إعداده مسبقًا للتشغيل على Google App Engine، بالإضافة إلى عمليات تنفيذ مرجعية للعملاء لتحميل الفيديوهات على أجهزة Android (ytd-android، الموضّحة في الشكل 1) وiPhone (ytd-iphone).

تطبيق YouTube Direct لأجهزة Android
الشكل 1: تطبيق YouTube Direct لأجهزة Android

الأمان

يُعدّ الأمان والمصادقة أيضًا من الجوانب المهمة لتطوير تطبيق YouTube المتوافق مع الأجهزة الجوّالة. في حين أنّ بعض عمليات واجهة برمجة التطبيقات متاحة للعملاء الذين لم يتم إثبات هويتهم، تتطلّب الطلبات الأخرى الحصول على إذن، ويتم ذلك من خلال رمز مميّز للمصادقة يتم إرساله في طلب واجهة برمجة التطبيقات. وتتضمن هذه العمليات تحميلات الفيديو، بالإضافة إلى أي عمليات أخرى تعمل على تعديل البيانات أو كتابتها أو الوصول إلى معلومات المستخدم الخاصة.

تتيح واجهة برمجة التطبيقات ثلاث طرق للمصادقة: 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 توسيع نطاق مشغّل YouTube لبرنامج AS3، ما يقدّم تجربة تشغيل بجودة أعلى.