채널 ID를 사용한 작업

Jeff Posnick, YouTube Developer Relations – 2013년 6월

1년 이상 Google+ 프로필과 YouTube 채널을 연결할 수 있었으며, YouTube는 이러한 프로필 연결로 인해 Data API v2 응답의 일부가 변경된 방식과 관련한 소식을 블로그에 게시해 왔습니다. 최근에는 Google+와 연결된 기존 YouTube 사용자 이름이 없는 새로운 YouTube 채널을 만들 수 있게 되었으며, 대신 이러한 채널은 Google+ 프로필을 통해서만 식별됩니다. 해당 블로그 게시물의 정보 대부분이 여전히 유효하지만, 이러한 추가 정보가 YouTube 채널과 관련된 기본적인 가정(각 채널은 항상 고유한 YouTube 사용자 이름과 연결됨 등)을 무효화합니다. 또한 YouTube는 모든 종류의 채널에 사용할 수 있는 코드 작성과 관련된 몇 가지 추가적인 모범 사례도 알려드리고자 했습니다.

목차

이 가이드에는 다음과 같은 섹션이 있습니다.

Data API v3의 채널 ID

이 API 버전의 경우 채널과 연동되는 모든 작업에서 이러한 채널을 식별하는 수단으로 채널 ID만 사용합니다. 특정 YouTube 사용자 채널의 ID는 API v2v3 모두에서 동일하므로 버전 간 이전이 용이합니다. 이와 같이 채널 ID를 완전히 신뢰할 수 있다는 점은 기존에 YouTube 사용자 이름을 API 메소드로 전달하는 데 익숙한 개발자들에게는 당황스러울 수 있지만, v3는 기존 사용자 이름이 있는 채널과 없는 채널을 동일하게 처리하도록 설계되었으며 이에 따라 모든 곳에 채널 ID가 사용됩니다.

v3를 사용 중이고 현재 인증된 사용자에 해당하는 채널 ID를 검색하려는 경우 channels.list(part="id", mine=true) 메소드를 호출할 수 있습니다. 이는 v2에서 default 사용자의 채널 프로필을 요청하는 것과 동일합니다.

API의 v3를 사용하여 채널 ID로 변환해야 하는 임의의 기존 YouTube 사용자 이름으로 자신을 찾는 경우 API에 channels.list(part="id", forUsername="username")를 호출할 수 있습니다.

표시 이름만 알고 있고 해당 채널을 찾으려는 경우 search.list(part="snippet", type="channel", q="display name") 메소드를 사용하면 편리합니다. 표시 이름은 고유하지 않기 때문에 응답에 한 개 이상의 항목이 반환되는 호출이 발생하는 경우에 대처할 방법을 준비해 두어야 합니다.

Data API v2의 채널 ID

기존의 Data API v2를 사용하는 개발자들이 가장 중요하게 명심할 사항은 모든 YouTube 채널이 고유한 사용자 이름을 갖고 있지 않다는 점입니다. 다행히 모든 YouTube 채널은 <yt:channelId> tag에 있는 값으로 표시되며 채널과 연결된 고유한 채널 ID를 갖고 있으므로, 사용자 이름 대신 이 값을 사용하는 것이 좋습니다. 예를 들어 YouTube 사용자 이름을 채널 관련 정보에 매핑하는 데이터베이스를 보유하고 있는 경우 기존 입력값은 계속 유효해야 합니다. (기존 채널은 사용자 이름이 삭제되지 않습니다.) 하지만 시간이 지남에 따라 사용자 이름으로 고유하게 식별할 수 없는 채널로 작업해야 할 경우가 많아집니다.

몇 가지 요소만 활용하면 사용자 이름에서 채널 ID로의 간편하게 전환할 수 있습니다. 먼저 Data API v2는 YouTube 사용자 이름을 허용하는 모든 요청 URL의 채널 ID를 허용하며, 이에 따라 채널 ID를 기존 코드로 원활하게 전환할 수 있습니다. 예를 들어 UC_x5XG1OV2P6uZZ5FSM9Ttw는 기존 사용자 이름이 GoogleDevelopers인 채널의 채널 ID이므로 다음 두 개의 URL은 동일한 API 요청이 됩니다.

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

또한 인증된 v2 요청을 하는 경우 요청 URL을 구성할 때 인증된 채널의 사용자 이름을 사용하지 않아도 됩니다. 사용자 이름(또는 채널 ID) 위치에 항상 default 값을 사용할 수 있습니다. 예를 들어 현재 인증된 사용자와 관련된 동영상 업로드 피드를 검색하려는 경우 https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1에서 검색하면 됩니다.