منابع توسعه موبایل با یوتیوب

Jarek Wilkiewicz، تیم 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 Framework نیز استفاده کنید.

در حال آپلود

برنامه شما می‌تواند با ارسال یک ایمیل به آدرس ایمیل ویژه مرتبط با حساب YouTube کاربر یا با استفاده از یکی از سه روش API : آپلود مبتنی بر مرورگر، آپلود مستقیم یا آپلود مستقیم با قابلیت ازسرگیری، یک ویدیو و ابرداده‌های آن را در YouTube آپلود کند. برای برنامه‌های تلفن همراه، آپلود مستقیم قابل ازسرگیری مطمئن‌ترین انتخاب است، زیرا به برنامه امکان می‌دهد به‌خوبی از خرابی‌های اتصال بازیابی کند و بارگذاری را از نقطه خرابی از سر بگیرد. پروتکل بارگذاری مجدد یوتیوب از مکانیسم HTTP 1.1 Content-Range/Range برای انتقال ویدیوها به صورت تکه‌ای استفاده می‌کند و در صورت وقفه، تعداد بایت‌هایی که با موفقیت منتقل شده‌اند را شناسایی می‌کند.

در حالی که محتوای واقعی ویدیو مهم‌ترین مؤلفه در آپلود است، ابرداده ویدیو بخشی جدایی ناپذیر از فرآیند است، زیرا این ابرداده به کاربران امکان می‌دهد ویدیوها را در جستجو قرار دهند و همچنین ویژگی‌های دیگری را که در ادامه این مقاله توضیح داده شده است فعال می‌کند. علاوه بر عناصر رایج مانند دسته، توضیحات و عنوان، برنامه‌های تلفن همراه به راحتی می‌توانند داده‌های موقعیت جغرافیایی را از دستگاه GPS تلفن همراه داشته باشند. این داده‌ها به شما امکان می‌دهد جستجوی مبتنی بر مکان را ارائه دهید یا مکان‌های ویدیویی را روی نقشه ترسیم کنید. برای برنامه‌های آپلود ویدیویی که به دنبال به حداقل رساندن تعامل کاربر هستند، آپلود بدون ابرداده گزینه دیگری است و اطلاعات بیشتر در مورد آن در این گفتگوی Google I/O موجود است.

اشتراک گذاری

YouTube Data API همچنین عملکرد غنی برای فعالیت‌های اشتراک‌گذاری ویدیو فراهم می‌کند. مانند سایر APIهای Google Data، YouTube API از پروتکل الهام گرفته از REST استفاده می کند که از نمایش داده های Atom ، JSON و JSON-C پشتیبانی می کند. پاسخ‌های API جمع‌وجور JSON-C برای محیط‌های موبایلی مناسب هستند که اغلب با منابع محدود هستند. API قابلیت جستجوی ویدیویی انعطاف پذیر را نشان می دهد. امکان نظر دادن و امتیاز دهی به ویدیوها؛ دسترسی به اشتراک‌ها، ویدیوهای مورد علاقه، لیست‌های پخش، و موتور توصیه. و مجموعه ای از ویژگی های انجمن که به شما کمک می کند ویدیو را در برنامه های اجتماعی ادغام کنید.

همه این توابع را می توان با استفاده از کتابخانه های کلاینت خاص زبان برنامه نویسی یا با تعامل مستقیم با سرورهای API YouTube از طریق HTTP در یک برنامه تلفن همراه گنجانید. رویکرد قبلی بیشتر پیچیدگی پروتکل را به قیمت ردپای بزرگتر برنامه انتزاعی می کند. رویکرد دوم به شما امکان می‌دهد با سرویس‌های API خاصی که برنامه شما از آن استفاده می‌کند، تعامل دستی داشته باشید. در نهایت، انتخاب برای برنامه خاص است. برای شروع، به کتابخانه Java GData برای اندروید یا کتابخانه Objective-C GData برای آیفون مراجعه کنید. برنامه‌های ویدیویی تلفن همراه پیچیده‌تر ممکن است از ادغام با یک سرور پشتیبان بهره ببرند. یکی از این برنامه‌ها YouTube Direct است (شکل 1)، که دارای کد سرور منبع باز است که از پیش پیکربندی شده برای اجرا در Google App Engine، و همچنین پیاده‌سازی مشتری مرجع برای آپلود ویدیو برای Android ( ytd-android ، نشان داده شده در شکل 1) و iPhone. ( ytd-iphone ).

برنامه YouTube Direct Android
شکل 1: برنامه YouTube Direct Android

امنیت

امنیت و احراز هویت نیز جنبه‌های مهم توسعه اپلیکیشن یوتیوب موبایل هستند. در حالی که برخی از عملیات API برای کلاینت‌های احراز هویت نشده در دسترس هستند، درخواست‌های دیگر نیاز به مجوز دارند که از طریق یک نشانه احراز هویت ارسال شده در درخواست API انجام می‌شود. چنین عملیاتی شامل آپلود ویدیو و همچنین هر عملیات دیگری است که داده‌ها را تغییر می‌دهد یا می‌نویسد یا به اطلاعات خصوصی کاربر دسترسی دارد.

API از سه روش احراز هویت پشتیبانی می کند: AuthSub، OAuth و ClientLogin . ClientLogin ساده ترین روش برای استفاده برای برنامه های تلفن همراه است و در Android AccountManager می تواند برای به دست آوردن آسان توکن های احراز هویت استفاده شود. با این حال، برنامه‌هایی که یک کلاینت تلفن همراه و چندین پشتیبان وب را ادغام می‌کنند باید از OAuth که به عنوان یک استاندارد باز ترجیح داده می‌شود، یا AuthSub که مختص Google است استفاده کنند. برای نمونه اجرای احراز هویت OAuth در Android و GDataOAuthViewControllerTouch را برای اجرای نمونه در iPhone iOS مشاهده کنید.

پخش

و در نهایت، ویدیوها وجود دارند تا مردم بتوانند آنها را تماشا کنند. باز هم، پلتفرم یوتیوب چندین گزینه را ارائه می دهد.

  • اکثر پلتفرم‌های مدرن موبایل همراه با یک برنامه پخش‌کننده YouTube هستند که امکان یکپارچه‌سازی سریع را فراهم می‌کنند. اگر پلتفرم شما شامل برنامه پخش کننده YouTube نیست، می توانید آن را دانلود کنید . یک برنامه تلفن همراه با استفاده از یک سرویس پلت فرم پخش کننده را راه اندازی می کند. به عنوان مثال، در Android، یک برنامه از قصد ACTION_VIEW استفاده می کند، و در iPhone یک برنامه می تواند پخش کننده را با استفاده از روش openURL از کلاس UIApplication که در این پست وبلاگ توضیح داده شده است، راه اندازی کند.
  • وب‌سایت تلفن همراه YouTube، http://m.youtube.com ، به شما امکان می‌دهد پخش ویدیو را به راحتی در یک برنامه وب یکپارچه کنید.
  • برای کنترل دقیق‌تر تجربه پخش، برنامه‌های کاربردی در پلتفرم‌های دارای Adobe Flash می‌توانند پخش‌کننده AS3 YouTube را گسترش دهند ، که پخش با کیفیت بالاتری را ارائه می‌دهد.