YouTube 모바일 개발 리소스

YouTube API팀, 야레크 윌키에비치
2010년 9월

<ph type="x-smartling-placeholder">

소개

모바일 애플리케이션에 동영상 녹화, 업로드, 공유 및 재생 기능을 통합하려는 개발자는 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];

iOS 4 이상에서 고급 녹화 옵션을 사용하려면 AV Foundation 프레임워크의 AVCaptureSession 클래스를 사용해도 됩니다.  

업로드 중

애플리케이션에서 사용자의 YouTube 계정과 연결된 특수 이메일 주소로 이메일을 보내거나 브라우저 기반 업로드, 직접 업로드, 재개 가능한 직접 업로드의 세 가지 API 방법 중 하나를 사용하여 동영상과 메타데이터를 YouTube에 업로드할 수 있습니다. 모바일 애플리케이션의 경우 재개 가능한 직접 업로드가 가장 신뢰할 수 있는 선택입니다. 연결이 실패했을 때 애플리케이션이 정상적으로 복구되고 장애가 발생한 지점부터 업로드를 재개할 수 있기 때문입니다. YouTube의 재개 가능한 업로드 프로토콜은 HTTP 1.1 Content-Range/Range 메커니즘을 활용하여 동영상을 청크 단위로 전송하고 중단이 발생할 경우 성공적으로 전송된 바이트 수를 식별합니다.

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

공유

또한 YouTube Data API는 동영상 공유 활동을 위한 풍부한 기능을 제공합니다. 다른 Google Data 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). 이 애플리케이션은 Google App Engine에서 실행되도록 사전 구성된 오픈소스 서버 코드와 Android (ytd-android, 그림 1) 및 iPhone (ytd-iphone)용 동영상 업로드의 참조 클라이언트 구현을 특징으로 합니다.

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

보안

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

API는 AuthSub, OAuth, ClientLogin이라는 세 가지 인증 방법을 지원합니다. ClientLogin은 모바일 애플리케이션에 사용하는 가장 간단한 방법이며, Android에서는 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 플레이어를 확장할 수 있습니다.