แหล่งข้อมูลสำหรับการพัฒนาอุปกรณ์เคลื่อนที่กับ 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 3 วิธี ได้แก่ การอัปโหลดในเบราว์เซอร์ การอัปโหลดโดยตรง หรือการอัปโหลดแบบกลับมาดำเนินการต่อได้โดยตรง สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ การอัปโหลดที่ดำเนินการต่อโดยตรงได้เป็นตัวเลือกที่เชื่อถือได้มากที่สุด เนื่องจากจะช่วยให้แอปพลิเคชันสามารถกู้คืนจากความล้มเหลวในการเชื่อมต่อได้อย่างลงตัว และอัปโหลดต่อหลังจากที่ล้มเหลว โปรโตคอลการอัปโหลดที่กลับมาทำงานต่อได้ของ YouTube จะใช้กลไก Content-Range/Range ของ HTTP 1.1 ในการโอนวิดีโอเป็นส่วนๆ และในกรณีที่มีการหยุดชะงัก เพื่อระบุจำนวนไบต์ที่โอนสำเร็จ

แม้ว่าเนื้อหาวิดีโอจริงจะเป็นองค์ประกอบที่สำคัญที่สุดในการอัปโหลด แต่ข้อมูลเมตาของวิดีโอเป็นส่วนประกอบที่สำคัญของกระบวนการ เนื่องจากข้อมูลเมตาดังกล่าวจะช่วยให้ผู้ใช้ค้นหาวิดีโอในการค้นหาและเปิดใช้ฟีเจอร์อื่นๆ ที่อธิบายต่อไปในบทความนี้ นอกเหนือจากองค์ประกอบทั่วไป เช่น หมวดหมู่ คำอธิบาย และชื่อ แอปพลิเคชันบนอุปกรณ์เคลื่อนที่ยังสามารถรวมข้อมูลตำแหน่งทางภูมิศาสตร์จากอุปกรณ์ GPS ของโทรศัพท์ได้ด้วย ข้อมูลเหล่านี้ช่วยให้คุณสามารถใช้การค้นหาตามตำแหน่งหรือเพื่อพล็อตตำแหน่งวิดีโอบนแผนที่ สำหรับแอปพลิเคชันการอัปโหลดวิดีโอที่ต้องการลดการโต้ตอบของผู้ใช้ให้เหลือน้อยที่สุด การอัปโหลดแบบ Zero-metadata คืออีกตัวเลือกหนึ่งและข้อมูลเพิ่มเติมที่มีอยู่ในการบรรยายที่ Google I/O นี้

การแชร์

นอกจากนี้ API ข้อมูลของ YouTube ยังมีฟังก์ชันที่สมบูรณ์สำหรับกิจกรรมการแชร์วิดีโอ YouTube API ใช้โปรโตคอลที่ได้รับแรงบันดาลใจจาก REST ซึ่งรองรับการแสดงข้อมูล Atom, JSON และ JSON-C เช่นเดียวกับ Google Data API อื่นๆ การตอบสนองของ 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 รองรับวิธีการตรวจสอบสิทธิ์ 3 วิธี ได้แก่ AuthSub, OAuth และ ClientLogin ClientLogin เป็นวิธีที่ง่ายที่สุดในการใช้กับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ และใน Android คุณสามารถใช้ AccountManager เพื่อรับโทเค็นการตรวจสอบสิทธิ์ได้อย่างง่ายดาย อย่างไรก็ตาม แอปพลิเคชันที่ผสานรวมไคลเอ็นต์อุปกรณ์เคลื่อนที่และแบ็กเอนด์เว็บหลายรายการควรพิจารณาใช้ OAuth ซึ่งเป็นมาตรฐานแบบเปิดที่แนะนำ หรือ AuthSub ซึ่งใช้กับ Google โดยเฉพาะ ดูตัวอย่างการใช้งานการตรวจสอบสิทธิ์ OAuth ใน Android ได้จากแอปพลิเคชันนี้ และดูตัวอย่างการใช้งานใน iPhone iOS ได้จาก GDataOAuthViewControllerTouch  

การเล่น

และสุดท้ายคือวิดีโอมีไว้เพื่อให้ผู้คนได้รับชม ขอย้ำอีกครั้งว่าแพลตฟอร์ม YouTube มีตัวเลือกมากมาย

  • แพลตฟอร์มมือถือที่ทันสมัยส่วนใหญ่มาพร้อมกับแอปพลิเคชันโปรแกรมเล่นวิดีโอ YouTube ซึ่งช่วยให้สามารถผสานรวมได้อย่างรวดเร็ว หากแพลตฟอร์มของคุณไม่มีแอปพลิเคชันโปรแกรมเล่น YouTube คุณสามารถดาวน์โหลดแอปพลิเคชันดังกล่าวได้ แอปพลิเคชันบนอุปกรณ์เคลื่อนที่เปิดใช้โปรแกรมเล่นโดยใช้บริการแพลตฟอร์ม ตัวอย่างเช่น บน Android แอปพลิเคชันจะใช้ Intent ACTION_VIEW และใน iPhone แอปพลิเคชันจะเปิดโปรแกรมเล่นได้โดยใช้เมธอด openURL ของคลาส UIApplication ตามที่อธิบายไว้ในบล็อกโพสต์นี้
  • เว็บไซต์ YouTube สำหรับมือถือ http://m.youtube.com ช่วยให้คุณสามารถรวมการเล่นวิดีโอในเว็บแอปพลิเคชันได้โดยง่าย
  • แอปพลิเคชันในแพลตฟอร์มที่เปิดใช้ Adobe Flash สามารถขยายโปรแกรมเล่น YouTube ที่ใช้ AS3 เพื่อให้เล่นวิดีโอได้คุณภาพสูงขึ้น ซึ่งจะช่วยให้ควบคุมประสบการณ์การเล่นได้ดียิ่งขึ้น