กันยายน 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) |
![]() รูปที่ 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 เพื่อให้เล่นวิดีโอได้คุณภาพสูงขึ้น ซึ่งจะช่วยให้ควบคุมประสบการณ์การเล่นได้ดียิ่งขึ้น