본문 바로가기

프로그래밍/영화 TMDB API

영화 정보 앱 만들기 - TMDB API 사용, Overview, API 사용법

반응형

TMDB API 사용법에 대해 전반적으로 알아보겠습니다.

 

TMDB API 활용 예제 앱입니다.

https://play.google.com/store/apps/details?id=com.enigmah2k.movieinfo

 

영화정보 - Google Play 앱

영화 또는 TV 시리즈 정보를 검색할 수 있습니다. TMDB API를 사용하여 만들었습니다. 한국에 소개되지 않은 컨텐츠를 찾을 수 있습니다.

play.google.com

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

 

 

반응형