TMDB API 사용법에 대해 전반적으로 알아보겠습니다.
TMDB API 활용 예제 앱입니다.
https://play.google.com/store/apps/details?id=com.enigmah2k.movieinfo
TMDB API - Overview
TMDB API 는 아래 URL에 API명세가 있습니다.
https://developers.themoviedb.org/3/getting-started/introduction
REST API 호출 방식으로 어떤 프로그래밍 언어로도 개발이 가능합니다.
OpenAPI 로 무료로 제공하기 때문에 영화/TV 에 관심이 많거나 해당 정보로 프로그래밍 하고 싶은 사람은 누구나 사용 가능합니다.
TMDB API 는 크게 세가지 형태로 구분할 수 있습니다.
1. 인증 없이 API key 만으로 조회 가능한 API
2. 인증은 없지만 API key 와 세부 정보에 대한 ID가 필요한 API
3. 개인 인증이 되어 session ID가 필요한 API
Developer 사이트의 왼쪽 카테고리를 보면 상당히 많은 메뉴가 있습니다.
그리고 각 메뉴당 하위 메뉴들이 있습니다.
각각 하위 메뉴들이 API 명세입니다.
각 API 형태별로 예를 들어 보겠습니다.
1. 인증 없이 API key 만으로 조회 가능한 API
/movie/popular 의 경우 필수 요구 파라메터가 api_key 입니다.
다른 값들은 optional 입니다.
https://developers.themoviedb.org/3/movies/get-popular-movies
즉, api_key만 있으면 결과를 받아올 수 있는 API 입니다.
호출 형태는 아래와 같습니다. JSON 형태로 결과를 받습니다.
https://api.themoviedb.org/3/movie/popular?api_key=<개인 API key>
2. 인증은 없지만 API key 와 세부 정보에 대한 ID가 필요한 API
movie의 GET Details를 보면 /movie/{movie_id} 로 되어 있습니다.
https://developers.themoviedb.org/3/movies/get-movie-details
구체적으로 지칭하는 movie_id 값을 필요로 합니다.
개별 대상을 지목하는 경우 대괄호 { } 로 묶여 있는 형태로 사용합니다.
대괄호 { } 로 지정된 파라메터는 항상 필수값입니다.
호출 형태는 아래와 같습니다. JSON 형태로 결과를 받습니다.
https://api.themoviedb.org/3/movie/724989?api_key=<개인 API key>
3. 개인 인증이 되어 session ID가 필요한 API
session ID가 필요한 API 는 개인화 관련 API 입니다.
request_token 을 받아서 session_id 를 요청하는 과정이 필요합니다.
회원 가입이 된 상태로 계정이 있는 경우, ID/PW 를 전달하여 로그인 된 session_id 를 받을 수도 있습니다.
Geust session에 대한 내용도 있지만 결과 값이 없어서 사용성은 없어 보입니다.
외부 앱에서 Session ID를 생성하려면 Request Token을 받아 타사 인증 요청을 하여 승인을 받아야 합니다.
https://www.themoviedb.org/authenticate/{REQUEST_TOKEN}
관련 내용은 아래에 있습니다.
https://developers.themoviedb.org/3/authentication/how-do-i-generate-a-session-id
승인을 받아 Session ID가 생성 되었다면 Favorite 리스트 생성, 평점, 시청목록 등 개인 서비스도 사용할 수 있습니다.
이 글은 인증없이 사용할 수 있는 API 위주로 확인해 보겠습니다.
POST나 DELETE 기능은 인증이 필요하므로, GET 방식 API만 다뤄보겠습니다.
==========================================
https://developers.themoviedb.org/3/getting-started
TMDB API 목록 설명
Getting Started
API를 사용할 때 기본적으로 알아야 할 사항들을 소개한다.
인증방법, 일별 데이터 파일 제공, 이미지 위치 등 정보를 제공한다.
https://stockant.tistory.com/564
Account
개인 계정과 관련된 기능을 제공합니다.
session_id 값이 필수이므로 인증 절차를 거치고 session_id 를 발급 받은 후에만 사용 가능합니다.
Favorite 리스트, 시청 목록을 만들고, 내가 작성한 평점을 가져오는 기능을 할 수 있다.
https://stockant.tistory.com/565
Authentication
개인 인증 방법입니다.
session_id 를 발급받는 방법이 나와 있습니다.
개인 웹사이트나 앱을 개발하는 경우 타사 인증 요청을 하여 승인을 받아야 합니다.
https://stockant.tistory.com/566
Certifications
영화/TV 컨텐츠 등급에 따른 공지 문구입니다.
https://stockant.tistory.com/577
Changes
지난 24 시간 동안 변경된 모든 영화 ID 목록을 가져옵니다.
start_date 및 end_date 파라메터를 사용하여 한 번에 최대 14일 동안의 변경된 ID를 가져올 수 있습니다.
페이지 당 100개의 항목이 반환됩니다.
https://stockant.tistory.com/578
Collections
collection으로 묶여 있는 정보를 가져옵니다.
정보 조회를 위해서는 {collection_id} 값이 필요합니다.
{collection_id}는 /search/collection API를 사용하여 알 수 있습니다.
https://stockant.tistory.com/591
Companies
company 정보를 가져옵니다.
정보 조회를 위해서는 {company_id} 값이 필요합니다.
{company_id} 는 /search/company API를 사용하여 알 수 있습니다.
https://stockant.tistory.com/604
Configuration
미리 설정되어 있는 값들을 알수 있습니다.
이미지 위치, 이미지 사이즈, 국가, 직업, 언어 등 기본 값들을 확인 할 수 있습니다.
https://stockant.tistory.com/605
Credits
컨텐츠 제작과 관련한 상세 정보를 가져온다.
보통은 제작에 관련된 사람의 이름, 촬영 장소, 배경 음악, 헌사, 제작사, 배급사, 후원사 등 모두 포함됩니다.
정보 조회를 위해서는 {credit_id} 값이 필요합니다.
{credit_id} 값을 얻기 위해서는 Movie는 Movies의 Get Credits 를 사용하고, TV는 TV의 Get Credits 를 사용하면 됩니다.
People 의 Get Movie Credits 와 Get TV Credits 를 사용해도 {credit_id} 값을 얻을 수 있습니다.
TV Seasons 과 TV Episodes 의 Get Credits 를 사용하여 {credit_id} 값을 얻을 수 있습니다.
Discover
다양한 파라메터로 검색을 하고 다양한 정렬 옵션을 제공합니다.
Find
외부 Media Databases 와 Social IDs 에서의 검색 결과를 가져옵니다.
정보 조회를 위해서는 {external_id} 값이 필요합니다.
{external_id} 는 Movies 의 Get External IDs 사용하여 얻을 수 있습니다.
Genres
컨텐츠의 장르를 가져옵니다.
Configuration 처럼 이미 정의되어 있는 장르 ID와 이름입니다.
Guest Sessions
guest session이 만들어진 상태에서 평점을 가져오는 기능입니다.
정보 조회를 위해서는 {guest_session_id} 값이 필요합니다.
{guest_session_id} 는 Authentication 의 Create Guest Session 을 사용하여 얻을 수 있습니다.
조회를 하면 결과가 없어서 사용성은 없어 보입니다.
Keywords
키워드에 속하는 영화를 가져옵니다.
정보 조회를 위해서는 {keyword_id} 값이 필요합니다.
{keyword_id} 는 Search 의 Search Keywords 를 사용하여 얻을 수 있습니다.
Lists
어떤 리스트를 말하는지 모호하다
리스트 생성 삭제 기능이 있기 때문에 session_id 가 필요하다.
정보 조회를 위해서는 {list_id} 값이 필요합니다.
{list_id} 는 Movie 의 Get Lists 를 사용하여 얻을 수 있습니다.
Movies
영화 정보 관련 API가 모여 있습니다.
api_key 만 있어도 사용할 수 있는 API 와, 개별 영화 조회를 위해 {movie_id} 값이 필요한 API 가 있습니다.
평점을 등록하기 위해서는 session_id 가 필요합니다.
조회 결과 중에는 다른 API를 사용하기 위한 key 값이 포함된 API도 있습니다.
Networks
다른 네트워크의 정보를 가져옵니다.
홈페이지나 이미지 위치를 알 수 있습니다.
정보 조회를 위해서는 {network_id} 값이 필요합니다.
{network_id} 는 TV 의 Get Details 의 결과의 networks 배열값으로 얻을 수 있습니다.
Trending
매일 또는 매주 유행하는 항목을 가져옵니다.
일일 트렌드 목록은 하루 24 시간 동안 항목을 가져옵니다.
주간 목록은 7 일 동안 항목을 가져옵니다.
정보 조회를 위해서는 {media_type} 값과 {time_window} 값이 필요합니다.
{media_type} : all, movie, tv, person
{time_window} : day, week
People
인물 정보를 가져옵니다.
정보 조회를 위해서는 {person_id} 값이 필요합니다.
{person_id}는 /search/person API를 사용하여 알 수 있습니다.
Reviews
리뷰 정보를 알 수 있습니다.
정보 조회를 위해서는 {review_id} 값이 필요합니다.
{review_id} 는 Movies의 Get Reviews 와 TV의 Get Reviews API를 사용하여 얻을 수 있습니다.
Search
영화, TV, 인물, 회사 등 각종 정보를 검색할 수 있습니다.
검색 결과로 다른 API에 사용되는 ID 값을 알 수 있습니다.
TV
TV 정보 관련 API가 모여 있습니다.
api_key 만 있어도 사용할 수 있는 API 와, 개별 영화 조회를 위해 {tv_id} 값이 필요한 API 가 있습니다.
평점을 등록하기 위해서는 session_id 가 필요합니다.
조회 결과 중에는 다른 API를 사용하기 위한 key 값이 포함된 API도 있습니다.
TV Seasons
TV Seasons 정보를 가져옵니다.
정보 조회를 위해서는 {tv_id} 와 {season_number} 값이 필요합니다.
{tv_id} 는 이미 알고 있는 값이고, 해당 TV 컨텐츠의 {season_number} 값은,
TV 의 Get Details 의 결과 중 seasons 배열값으로 얻을 수 있습니다.
TV Episodes
TV Episodes 정보를 가져옵니다.
정보 조회를 위해서는 {tv_id} 와 {season_number} 와 {episode_number} 값이 필요합니다.
{tv_id} 와 {season_number} 는 이미 알고 있는 값이고,
{episode_number} 은 TV Seasons 의 Get Details 의 결과 중episodes 배열값으로 얻을 수 있습니다.
TV Episode Groups
TV Episode Groups 세부 정보를 가져옵니다.
그룹은 다음 7가지 유형을 지원합니다.
Original air date
Absolute
DVD
Digital
Story arc
Production
TV
정보 조회를 위해서는 {id} 값이 필요합니다.
{id} 는 TV의 Get Episode Groups API를 사용하여 알 수 있습니다.
전반적인 설명은 마치고, 다음에는 각 API 별로 구체적인 사용법을 알아 보도록 하겠습니다.
TMDB API 를 활용한 Android 앱 만들기
https://stockant.tistory.com/530
'프로그래밍 > 영화 TMDB API' 카테고리의 다른 글
영화 정보 앱 만들기 - TMDB API 사용법, Authentication (3) | 2020.11.05 |
---|---|
영화 정보 앱 만들기 - TMDB API 사용법, Getting Started (0) | 2020.10.30 |
영화 정보 앱 만들기 - TMDB API 사용, 검색 기능 (0) | 2020.10.27 |
영화 정보 앱 만들기 - TMDB API 사용, TV 카테고리 추가 (0) | 2020.10.26 |
영화 정보 앱 만들기 - TMDB API 사용, TV 정보 popular 추가 (0) | 2020.10.25 |