-
안녕하세요 Jeff Fisher입니다. YouTube API 를 사용한
동영상 검색법에 대해 말씀드리겠습니다.
-
YouTube에하는 일반적인 작업은
동영상을 검색하는 것입니다.
-
동영상 피드를 사용하여 API로 비디오를 검색합니다.
-
"q" 파라미터를 사용하여 검색어를 명시합니다.
-
좀 더 복잡한 검색어는 URL escape 처리로
명시할 수 있습니다.
-
API에는 다양한 버전에 있는데,
-
"v" 파라미터나 특수 헤더로
버전을 명시할 수 있습니다.
-
YouTube에는 "cute puppy" 동영상이 많기 때문에
모든 검색 결과를 한꺼번에 처리하고 싶지 않으시죠.
-
"max-results" 파라미터로
갯수를 명시할 수 있습니다.
-
한번에 10개를 원하면서 10 페이지까지 원할수도 있죠.
-
rel="next"로 세팅된 link 엘리먼트에
API로 리턴된 피드를 볼 수 있습니다.
-
이는 다음 결과 페이지에 대해서 알려주며
피드를 통해서 페이징 하는 올바른 방법입니다.
-
"next"링크를 보면, "start-index" 파라미터가 있는데,
이것은 다음 페이지의 시작을 알려줍니다.
-
하지만 이 파라미터를 매뉴얼하게 세팅해서는 안되며
대신 피드로부터 "next"값을 extract하도록 합니다.
-
YouTube API를 사용할 수 있는
다른 쿼리 파라미터들에 대해서 알아보겠습니다.
-
첫째, "orderby"에 대해서 알아보겠습니다.
디폴트로 결과는 관련 순서로 리턴이 됩니다.
-
하지만 주회수, 평가점수, 게시일 등의 순서로
리턴되게 할 수도 있습니다.
-
"author" 파라미터로 특정 YouTube 사용자가 게시한
모든 동영상을 검색할 수도 있습니다.
-
업로드 피드를 받는 것과 동일한 작업입니다.
-
API 버전 2 에서는 위치기반 검색을 추가했습니다.
-
위도와 경도 정보를 입력하여
해당 위치 근방에서 발생한 동영상을 찾을 수 있죠.
-
다수의 동영상이 '런던'과 같은
위치 설명만을 가지고 있기 때문에
-
분명한 위도, 경도 정보를 가진 동영상이
리턴되기를 원한다면
-
감탄부호(!)를 쿼리에 추가하세요.
-
임베디드 가능한 동영상만을 보려면
"format" 파라미터를 사용합니다.
-
특정 언어로 된 결과만을 원한다면
language restrict를 사용할 수 있습니다.
-
참고로 이는 단지 동영상 메타데이타이며
오디오 트랙 언어는 아닙니다.
-
safeSearch 값도 명시할 수 있는데,
디폴트는 보통값 "moderate"입니다.
-
하지만 제한된 컨텐츠를 필터링하기 위해
"strict" 또는 "none"을 설정할 수도 있습니다.
-
어떤 동영상은 특정 지역에서 재생되지 않습니다.
-
국가 코드나 IP 주소를 넘겨줘서
사용자의 지역을 명시할 수 있습니다.
-
IP 주소를 넘기는 경우 국가 코드를 확인할 수 있습니다.
-
이는 재생할 수 없는 동영상을 걸러내어 사용자 경험을
개선하기 위한 것일 뿐임을 참고하세요.
-
이 파라미터를 사용한다고 해서
재생할 수 있는 동영상에 영향을 주지 않습니다.
-
YouTube에는 Comedy, News, Politics 등
다양한 동영상 카테고리가 있습니다.
-
Comedy 카테고리 안에 있는 동영상만을 원한다면
"category" 파라미터를 사용하시면 됩니다.
-
다른 Google Data API에 익숙하다면
아래와 같은 구문을 사용할 수 있습니다.
-
"puppy"라는 태그를 가지고 있는 모든 동영상 검색과 같이
태그 검색을 하고 싶으시면 동일한 메카니즘을 이용하세요.
-
동영상 카테고리는 대문자로 시작합니다.
반면 태그는 소문자로 시작하구요.
-
다시 말하면 위의 검색은 Comedy 카테고리에 있는
모든 동영상 검색이고
-
아래는 "comedy"라는
태그를 가지고 있는 동영상 검색입니다.
-
우리가 다루었던 다른 쿼리 파라미터들을
조합해서 사용할 수도 있습니다.
-
예를 들어, 외부 웹페이지에 임베디드 가능한
Comedy 카테고리에 있는
-
고양이(kitten) 동영상을 검색하고자 한다면
이 쿼리를 사용할 수 있습니다.
-
YouTube는 또한 인기있는 동영상 리스트를 제공합니다.
-
스탠다드 피드(standard feeds)로 알려져 있는데,
-
최상위 평가 점수, 최다 조회수,
최다 댓글수 등이 있습니다.
-
최상위 평가 점수 동영상 중에서 "time" 파라미터를 사용하여
금주에 게시된 동영상을 검색할 수도 있습니다.
-
최상위 평가 점수 동영상 중에서
이번 달이나 오늘 게시된 동영상도 볼 수 있습니다.
-
최상위 평가 점수를 받은 동영상 중에서 Comedy와 같이
특정 카테고리 안에 있는 동영상을 볼 수도 있습니다.
-
앞서 다뤘던 "category" 파라미터 사용과는
차이가 있음을 주의하세요,
-
상단의 피드는 Comedy 카테고리 내에 있는
평가 상위 100개 동영상입니다.
-
반면 하단은 YouTube에 있는 평가 상위 100개 동영상 중에서 Comedy 카테고리에 속한 것들 입니다.
-
일본에서 평가 상위에 있는 Comedy 동영상과 같이
지역에 따라 다른 스탠다드 피드를 볼 수도 있습니다.
-
YouTube API 사용에 많은 흥미를 가지시길 기대합니다.
-
하지만 시작에 앞서,
몇 가지 주의 사항을 말씀드리겠습니다.
-
비디오 검색 피드에서 1000개 이상을 검색할 수 없습니다.
YouTube.com에서와 마찬가지죠.
-
openSearch totalResults 값은 근사치입니다.
-
그래서 페이지 번호를 매뉴얼하게 매겨선 안됩니다.
대신 "next" 링크를 사용하시면 됩니다.
-
앞서 cute puppy 동영상을 검색했던
예제로 돌아가봅시다.
-
YouTube는 거대한 동영상 웹사이트이기 때문에
검색 정보는 캐시에 저장된 정보일 수 있습니다.
-
이는 가장 최근 업로드된 cute puppy 동영상은
검색 결과에 표시되지 않을 수도 있다는 뜻이죠.
-
이는 또한 동영상 제목과 설명과 같은 정보가
-
검색 목록에 업데이트되기까지
한두 시간 소요될 수도 있다는 뜻입니다.
-
또한 조회수나 선호도 등의 해당 동영상의 통계가
최신 정보가 아닐 수도 있습니다.
-
또한 private 에서 public으로 공개 여부가 바뀐 경우
검색 목록에 들어가는데 더 오랜 시간이 걸릴 수도 있습니다.
-
정보를 받고자 하는 동영상의 ID를 알고 있는 경우라면
-
YouTube에서 동영상을 검색하는것과 유사하게
이것도 캐시에 저장된 정보일 것입니다.
-
또한 사용자로서 승인되지 않았을 때 업로드 피드를 통해서
정보를 받으려고 하는 경우에도 마찬가지입니다.
-
하지만 승인된 경우라면 캐시로 저장되지 않은
정보를 받을 것이고 이 정보는 최신입니다.
-
또한 사용자로서 승인을 받은 상태로
업로드 피드를 받는 다면
-
캐시로 저장되지 않은 정보를 받게 될 것입니다.
-
이는 YouTube가 가지고 있는 최신 정보를 받는 다는 뜻이죠.
그 정보는 게시 시간 순서에 따라 정렬될 것입니다.
-
하지만 해당 피드에 "orderby"와 같은
쿼리 파라미터를 추가하면
-
인증이 되었다 하더라도, 결과는 캐시로 저장이 됩니다.
-
캐싱 프로세스에 영향을 주지 않는 쿼리 파라미터는
start-index와 max-results 입니다.
-
따라서 피드를 통해서 페이지 처리를 할 수 있는 것이죠.
-
저희가 제공하는 클라이언트 라이브러리를
사용하고 계시다면
-
YouTube의 검색 쿼리를 만드는 데 도움이 되는
오브젝트와 메소드가 있습니다.
-
자세한 내용은 클라이언트 라이브러리용 문서를 확인하세요.
-
이 동영상에서 다룬 모든 정보는 code.google.com에 있는 문서에서 확인하실 수 있습니다.
-
감사합니다.