YouTube를 통한 모바일 개발 도움말

YouTube API 팀, Jarek Wilkiewicz
2010년 9월

소개

모바일 애플리케이션에 동영상 녹화, 업로드, 공유 및 재생 기능을 통합하려는 개발자는 YouTube 플랫폼을 사용하여 작업을 간소화하고 최종 제품의 품질을 향상시킬 수 있습니다. 본 도움말에서는 애플리케이션에서 사용할 수 있는 몇 가지 기술에 대해 소개합니다.

동영상 녹화

동영상 녹화 절차는 기본 모바일 플랫폼을 이용하여 수행합니다. 예를 들어 Android 상의 애플리케이션에서 VIDEO_CAPTURE 인텐트를 실행할 수 있습니다.

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

또는 iPhone iOS에서 UIImagePickerController를 실행할 수 있습니다.
IImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[self presentModalViewController:imagePicker animated:YES];

iSO 4 이상의 고급 녹화 옵션에 대한 자세한 내용을 보려면 AV Foundation Framework에서 AVCaptureSession 클래스를 이용하시기 바랍니다.

업로드

사용자 YouTube 계정과 연결되어 있는 특정 이메일 주소에 이메일을 보내거나 브라우저 기반 업로드, 직접 업로드 또는 직접 재개 가능 업로드와 같은 3가지 API 메소드 중 하나를 이용하면 애플리케이션에서 동영상 및 메타데이터를 YouTube에 올릴 수 있습니다. 모바일 애플리케이션의 경우 재개 가능 직접 업로드가 가장 안정적으로 선택할 수 있는 메소드로, 이 메소드를 사용하면 연결이 실패하여 실패 위치에서 다시 업로드를 하려고 할 때 애플리케이션에서 매끄럽게 복구할 수 있습니다. YouTube의 재개 가능 업로드 프로토콜은 HTTP 1.1 Content-Range/Range 메커니즘을 사용하여 동영상을 덩어리로 전송하며 중단되는 경우 성공적으로 전송된 바이트 수를 식별합니다.

업로드에서는 실제 동영상 콘텐츠가 가장 중요한 구성요소이지만, 동영상 메타데이터 역시 동영상 업로드에 중요한 부분을 차지합니다. 메타데이터는 사용자가 검색을 통해 동영상을 찾을 수 있도록 하며 이 도움말에서 나중에 설명하게 될 다른 기능들도 가능하게 해줍니다. 모바일 애플리케이션에는 카테고리, 설명, 제목과 같은 공통 요소 외에도 휴대전화 GPS 장치의 위치정보 데이터를 쉽게 포함시킬 수 있습니다. 위치정보 데이터는 위치 기반 검색을 가능하게 하거나 동영상 위치를 지도상에 입력할 수 있게 합니다. 사용자 작업을 최소화하려는 동영상 업로드 애플리케이션의 경우에는 메타데이터 없이 동영상을 업로드하는 방법을 사용할 수 있습니다. 자세한 정보는 Google I/O 동영상을 참조하시길 바랍니다.


공유

YouTube Direct Android 애플리케이션
그림 1: YouTube Direct Android 애플리케이션

YouTube 데이터 API는 동영상 공유 활동을 위한 많은 기능을 제공합니다. 다른 Google 데이터 API와 마찬가지로, YouTube API는 Atom, JSON, JSON-C 데이터 표현을 지원하는 REST 기반 프로토콜을 사용합니다. JSON-C의 간단한 API 응답은 리소스가 제한되는 경우가 많은 모바일 환경에 특히 잘 맞습니다. 또한 YouTube API는 유연한 동영상 검색 기능, 동영상에 댓글을 달고 평가하는 기능 및 구독, 즐겨찾기 동영상, 재생목록, 추천 엔진에 액세스할 수 있는 기능, 그리고 소셜 애플리케이션에 동영상을 통합할 수 있는 커뮤니티 호스트 기능도 제공합니다.

이러한 모든 기능은 프로그래밍 언어별 클라이언트 라이브러리를 이용하거나 HTTP를 통해 YouTube의 API 서버와 직접 상호작용하여 모바일 애플리케이션에 통합할 수 있습니다. 클라이언트 라이브러리를 사용할 경우 애플리케이션이 차지하는 공간은 많아지지만 프로토콜은 간단해집니다. HTTP를 통할 경우 애플리케이션이 사용하는 특정 API 서비스와 수작업으로 상호작용할 수 있습니다. 둘 중 어느 방법을 선택하느냐는 애플리케이션에 따라 다릅니다. 시작하려면 Android일 경우 Java GData 라이브러리를 참조하고 iPhone일 경우에는 Objective-C GData 라이브러리를 참조하시기 바랍니다. 좀더 복잡한 모바일 동영상 애플리케이션은 서버 백엔드와 통합하는 것이 좋습니다. 그러한 애플리케이션 중 하나가 YouTube Direct(그림 1)입니다. YouTube Direct에는 Android(ytd-android, 그림 1 참고) 및 iPhone(ytd-iphone)의 동영상 업로드에 대한 클라이언트 구현 참조 문서뿐 아니라 Google App Engine에서 실행되도록 미리 구성된 오픈 소스 서버 코드가 있습니다.

보안

보안 및 인증 역시 모바일 YouTube 애플리케이션 개발의 중요한 측면입니다. 일부 API 작업은 인증되지 않은 클라이언트에서도 수행할 수 있지만 대부분의 작업에는 인증이 필요하며, 인증은 인증 토큰을 API 요청에 제출하면 완료됩니다. 인증이 필요한 작업으로는 동영상 업로드 및 데이터를 수정 또는 작성하거나, 개인 사용자 정보에 액세스하는 기타 작업이 있습니다.

API는 3가지 인증 방법 AuthSub, OAuth, ClientLogin을 지원합니다. ClientLogin은 모바일 애플리케이션에 이용할 수 있는 가장 간단한 방법이며 Android에서는 , android.os.Handler)">AccountManager를 이용하여 쉽게 인증 토큰을 받을 수 있습니다. 하지만 모바일 클라이언트와 여러 개의 웹 백엔드를 통합한 애플리케이션은 개방형 표준으로 선호되는 OAuth 또는 Google에만 사용할 수 있는 AuthSub를 사용해야 합니다. Android에서의 OAuth 인증 구현 샘플을 보려면 이 애플리케이션을 참조하고 iPhone iOS에서의 구현 샘플은 GDataOAuthViewControllerTouch를 참조하시기 바랍니다.

재생

동영상은 사람들이 볼 수 있도록 존재하는 것입니다. YouTube 플랫폼은 그를 위한 여러 옵션을 제공합니다.

  • 대부분의 최신 모바일 플랫폼은 신속하게 통합할 수 있는 YouTube 플레이어 애플리케이션과 함께 제공됩니다. 플랫폼에 YouTube 플레이어 애플리케이션이 포함되어 있지 않다면, 다운로드할 수 있습니다. 모바일 애플리케이션은 플랫폼 서비스를 이용하여 플레이어를 실행합니다. 예를 들어, Android에서는 애플리케이션이 ACTION_VIEW 인텐트를 이용하고, iPhone에서는 블로그 게시물에서 설명한 것처럼 UIApplication 클래스의 openURL 메소드를 이용하여 플레이어를 실행합니다.
  • YouTube 모바일 웹사이트 http://m.youtube.com은 웹 애플리케이션에서 동영상 재생을 손쉽게 통합할 수 있도록 해 줍니다.
  • 재생 환경을 보다 세밀히 관리할 수 있도록 Adobe Flash 사용 플랫폼의 애플리케이션은 AS3 YouTube 플레이어를 확장할 수 있으며 그러면 더 높은 품질의 재생이 가능합니다.

이 도움말에 대한 의견이 있거나 YouTube용 모바일 애플리케이션을 구축하는 개발자를 위한 제안 사항이 있으면 YouTube API 개발자 포럼으로 보내주세요.