채널 ID 사용

제프 포스닉, YouTube 개발자 관계팀 – 2013년 6월

1년 넘게 Google+ 프로필을 YouTube 채널에 연결할 수 있었으며, 프로필 연결의 결과 일부 Data API v2 응답이 어떻게 변경되었는지 블로그에 게시했습니다. 최근에는 기존 YouTube 사용자 이름이 연결되지 않고 Google+ 프로필로만 식별되는 새 YouTube 채널을 만들 수 있게 되었습니다. 이 블로그 게시물의 대부분의 정보는 여전히 적용되지만, 이 추가적인 문제로 인해 YouTube 채널에 대한 몇 가지 기본 가정(예: 각 채널이 항상 고유한 YouTube 사용자 이름과 연결된다)이 무효화됩니다. 이에 따라 모든 유형의 채널에서 작동하는 코드를 작성하기 위한 몇 가지 추가 권장사항을 안내하고자 합니다.

Data API v3의 채널 ID

채널과 함께 작동하는 모든 v3 작업은 채널을 식별하는 수단으로서 채널 ID만 사용합니다. 특정 YouTube 사용자의 채널 ID는 API의 v2와 v3에서 동일하므로 버전 간의 이전이 간소화됩니다. 이전에 YouTube 사용자 이름을 API 메서드에 전달하는 데 익숙했던 개발자에게는 채널 ID에 대한 이러한 완전한 의존이 혼란스러울 수 있지만 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

참고: YouTube Data API (v2)는 2014년 2월 26일부터 지원 중단되었으며 API가 사용 중지되었습니다. 아직 v2 API를 사용하는 애플리케이션은 즉시 v3 API로 이전해야 합니다.

이전 Data API v2를 사용하는 개발자에게 가장 중요한 점은 모든 YouTube 채널에 고유한 사용자 이름이 있는 것은 아닙니다. 다행히 모든 YouTube 채널에는 고유한 채널 ID가 연결되어 있으며, 이 ID는 <yt:channelId> 태그의 값으로 표시됩니다. 개발자는 이 값을 사용자 이름 대신 사용하는 것이 좋습니다. 예를 들어 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에서 가져오면 됩니다.