본문 바로가기

프로그래밍/영화 TMDB API

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

반응형

TMDB API 활용 예제 앱입니다.

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

 

영화정보 - Google Play 앱

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

play.google.com

 

TMDB API - Account

계정과 관련된 개인정보 기능입니다.

Favorite 리스트, 평점, 시청목록 등을 관리합니다.

session_id가 필수값으로 인증 절차를 거처야 합니다.

리스트의 생성, 수정, 삭제는 List API에서 관리하며, Account API는 주로 조회 기능을 합니다.

 

아래 링크가 Account 관련 API 상세입니다.

https://developers.themoviedb.org/3/account/get-account-details

 

각 API에 대해 알아보겠습니다.

 

=============================================

< API 설명 >

 

1. Get Details 

해당 계정의 상세 정보를 가져옵니다.

 

session_id 취득 후 아래와 같이 호출하면 계정 정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account?api_key=<<api_key>>&&session_id=120dc27075134ddd15c477b183af3632253180f5

{"avatar":{"gravatar":{"hash":"dec2c1dcf3ddddddddddd2517d"},"tmdb":{"avatar_path":null}},"id":9999999,"iso_639_1":"ko","iso_3166_1":"KR","name":"","include_adult":false,"username":"회원ID"}

여기에서 가장 중요한 값은 id 값입니다.

다른 Account API 사용시 {account_id} 값으로 사용해야 합니다.

 

아래는 응답 결과 입니다.

{
  "avatar": {
    "gravatar": {
      "hash": "c9e9fc152ee756a900db85757c29815d"
    }
  },
  "id": 548,
  "iso_639_1": "en",
  "iso_3166_1": "CA",
  "name": "Travis Bell",
  "include_adult": true,
  "username": "travisbell"
}

 

2. Get Created Lists

생성되어 있는 리스트를 가져옵니다.

 

아래와 같이 호출하면 리스트 정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/lists?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

리스트가 없는 경우 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":1,"total_results":0}

 

TMDB 사이트에서 리스트를 생성 후 호출하면 아래와 같이 나옵니다.

{"page":1,"results":[{"description":"목록테스트","favorite_count":0,"id":9999999,"item_count":0,"iso_639_1":"ko","list_type":"movie","name":"목록테스트","poster_path":null}],"total_pages":1,"total_results":1}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "description": "Name pretty much says it all, here's the top 50 grossing films of all time.",
      "favorite_count": 0,
      "id": 10,
      "item_count": 0,
      "iso_639_1": "en",
      "list_type": "movie",
      "name": "Top 50 Grossing Films of All Time (Worldwide)",
      "poster_path": null
    }
  ],
  "total_pages": 4,
  "total_results": 61
}

 

3. Get Favorite Movies

즐겨찾기 설정이 되어 있는 영화 정보를 가져옵니다.

관심 목록에 등록한 영화여도 즐겨찾기 설정을 안하면 결과로 안옵니다.

 

아래와 같이 호출하면 즐겨찾기를 설정한 영화정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/favorite/movies?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

즐겨찾기 설정을 한 영화가 없으면 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":0,"total_results":0}

 

TMDB 사이트에서 즐겨찾기 설정을 한 후 호출하면 아래와 같이 나옵니다.

{"page":1,"results":[{"id":454626,"video":false,"vote_count":6052,"vote_average":7.5,"title":"Sonic the Hedgehog","release_date":"2020-02-12","original_language":"en","original_title":"Sonic the Hedgehog","genre_ids":[28,878,35,10751],"backdrop_path":"/stmYfCUGd8Iy6kAMBr6AmWqx8Bq.jpg","adult":false,"overview":"Based on the global blockbuster videogame franchise from Sega, Sonic the Hedgehog tells the story of the world’s speediest hedgehog as he embraces his new home on Earth. In this live-action adventure comedy, Sonic and his new best friend team up to defend the planet from the evil genius Dr. Robotnik and his plans for world domination.","poster_path":"/aQvJ5WPzZgYVDrxLX4R6cLJCEaQ.jpg","popularity":292.31}],"total_pages":1,"total_results":1}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "adult": false,
      "backdrop_path": null,
      "genre_ids": [
        16
      ],
      "id": 9806,
      "original_language": "en",
      "original_title": "The Incredibles",
      "overview": "Bob Parr has given up his superhero days to log in time as an insurance adjuster and raise his three children with his formerly heroic wife in suburbia. But when he receives a mysterious assignment, it's time to get back into costume.",
      "release_date": "2004-11-04",
      "poster_path": null,
      "popularity": 0.167525,
      "title": "The Incredibles",
      "video": false,
      "vote_average": 6.8,
      "vote_count": 1584
    }
  ],
  "total_pages": 4,
  "total_results": 77
}

 

 

4. Get Favorite TV Shows

영화와 마찬가지로 즐겨찾기 설정이 되어 있는 TV 정보를 가져옵니다.

 

아래와 같이 호출하면 즐겨찾기를 설정한 TV정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/favorite/tv?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

즐겨찾기 설정을 한 TV가 없으면 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":0,"total_results":0}

 

TMDB 사이트에서 즐겨찾기 설정을 한 후 호출하면 아래와 같이 나옵니다.

{"page":1,"results":[{"original_name":"Lucifer","id":63174,"name":"Lucifer","vote_count":6235,"vote_average":8.5,"first_air_date":"2016-01-25","poster_path":"/4EYPN5mVIhKLfxGruy7Dy41dTVn.jpg","genre_ids":[80,10765],"original_language":"en","backdrop_path":"/ta5oblpMlEcIPIS2YGcq9XEkWK2.jpg","overview":"Bored and unhappy as the Lord of Hell, Lucifer Morningstar abandoned his throne and retired to Los Angeles, where he has teamed up with LAPD detective Chloe Decker to take down criminals. But the longer he's away from the underworld, the greater the threat that the worst of humanity could escape.","origin_country":["US"],"popularity":617.445}],"total_pages":1,"total_results":1}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "backdrop_path": null,
      "first_air_date": "2007-09-24",
      "genre_ids": [
        10759
      ],
      "id": 1404,
      "original_language": "en",
      "original_name": "Chuck",
      "overview": "Chuck is an American action-comedy/spy-drama television series created by Josh Schwartz and Chris Fedak. The series is about an \"average computer-whiz-next-door\" named Chuck, played by Zachary Levi, who receives an encoded e-mail from an old college friend now working for the Central Intelligence Agency; the message embeds the only remaining copy of a software program containing the United States' greatest spy secrets into Chuck's brain.",
      "origin_country": [
        "US"
      ],
      "poster_path": null,
      "popularity": 0.125125,
      "name": "Chuck",
      "vote_average": 8.2,
      "vote_count": 37
    }
  ],
  "total_pages": 3,
  "total_results": 52
}

 

 

5. Mark as Favorite

영화 또는 TV 프로그램을 즐겨 찾기 항목으로 표시 할 수 있습니다. 

 

필수로 전달할 파라메터 값들이 많습니다. 

개별 컨텐츠를 구분해야 하기 때문입니다.

 

POST 방식으로만 동작합니다.

POST 방식 동작 확인은 코드를 구현해야 하므로 구현 방법 및 소스코드는 E-Book에 적겠습니다.

 

 

6. Get Rated Movies

사용자가 평가 한 모든 영화 목록을 가져옵니다.

 

아래와 같이 호출하면 평가정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/rated/movies?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

평가 정보가 없으면 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":0,"total_results":0}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "adult": false,
      "backdrop_path": null,
      "genre_ids": [
        28
      ],
      "id": 155,
      "original_language": "en",
      "original_title": "The Dark Knight",
      "overview": "Batman raises the stakes in his war on crime. With the help of Lt. Jim Gordon and District Attorney Harvey Dent, Batman sets out to dismantle the remaining criminal organizations that plague the streets. The partnership proves to be effective, but they soon find themselves prey to a reign of chaos unleashed by a rising criminal mastermind known to the terrified citizens of Gotham as the Joker.",
      "release_date": "2008-07-18",
      "poster_path": null,
      "popularity": 0.293783,
      "title": "The Dark Knight",
      "video": false,
      "vote_average": 7.9,
      "vote_count": 5504,
      "rating": 9
    }
  ],
  "total_pages": 31,
  "total_results": 605
}

 

7. Get Rated TV Shows

사용자가 평가 한 모든 TV Shows 목록을 가져옵니다.

 

아래와 같이 호출하면 평가정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/rated/tv?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

평가 정보가 없으면 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":0,"total_results":0}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "backdrop_path": null,
      "first_air_date": "2008-09-09",
      "genre_ids": [
        18
      ],
      "id": 1705,
      "original_language": "en",
      "original_name": "Fringe",
      "overview": "Fringe is an American science fiction television series that follows Olivia Dunham, Peter Bishop, and Walter Bishop, members of a Federal Bureau of Investigation \"Fringe Division\" team based in Boston, Massachusetts under the supervision of Homeland Security. The team uses \"fringe\" science and FBI investigative techniques to investigate a series of unexplained, often ghastly occurrences, which are related to mysteries surrounding a parallel universe. The series has been described as a hybrid of The X-Files, Altered States, and The Twilight Zone.",
      "origin_country": [
        "US"
      ],
      "poster_path": null,
      "popularity": 0.372415,
      "name": "Fringe",
      "vote_average": 8.4,
      "vote_count": 46,
      "rating": 9
    }
  ],
  "total_pages": 7,
  "total_results": 139
}

 

 

8. Get Rated TV Episodes

사용자가 평가 한 모든 TV Episodes 목록을 가져옵니다.

 

아래와 같이 호출하면 평가정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/rated/tv/episodes?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

평가 정보가 없으면 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":0,"total_results":0}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "air_date": "2013-10-15",
      "episode_number": 5,
      "id": 64782,
      "name": "The Workplace Proximity",
      "overview": "Amy starts working at Caltech which causes friction with Sheldon. Howard agrees with Sheldon who mentions this to Bernadette causing a big fight for the Wolowitzes.",
      "production_code": "4X5305",
      "season_number": 7,
      "show_id": 1418,
      "still_path": "/8gsO10PHQnMO0qqXKN58Dk9bBBm.jpg",
      "vote_average": 7.583,
      "vote_count": 6,
      "rating": 8
    }
  ],
  "total_pages": 8,
  "total_results": 152
}

 

9. Get Movie Watchlish

사용자가관심목록에 추가 한 모든 영화 목록을 가져옵니다.

 

아래와 같이 호출하면 관심목록 영화 정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/watchlist/movies?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

평가 정보가 없으면 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":0,"total_results":0}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "adult": false,
      "backdrop_path": null,
      "genre_ids": [
        18
      ],
      "id": 76726,
      "original_language": "it",
      "original_title": "Chronicle",
      "overview": "Three high school students make an incredible discovery, leading to their developing uncanny powers beyond their understanding. As they learn to control their abilities and use them to their advantage, their lives start to spin out of control, and their darker sides begin to take over.",
      "release_date": "2012-02-02",
      "poster_path": null,
      "popularity": 0.237951,
      "title": "Chronicle",
      "video": false,
      "vote_average": 6.2,
      "vote_count": 545
    }
  ],
  "total_pages": 14,
  "total_results": 277
}

 

 

10. Get TV Show Watchlist

사용자가 관심목록에 추가 한 모든 TV 목록을 가져옵니다.

 

아래와 같이 호출하면 관심목록 TV 정보를 얻을 수 있습니다.

https://api.themoviedb.org/3/account/{account_id}/watchlist/tv?api_key=<<api_key>>&session_id=120dc27075134ddd15c477b183af3632253180f5

 

평가 정보가 없으면 아래와 같이 나옵니다.

{"page":1,"results":[],"total_pages":0,"total_results":0}

 

아래는 응답 결과 입니다.

{
  "page": 1,
  "results": [
    {
      "backdrop_path": null,
      "first_air_date": "2013-09-26",
      "genre_ids": [
        35
      ],
      "id": 58932,
      "original_language": "en",
      "original_name": "The Crazy Ones",
      "overview": "The Crazy Ones is an American situation comedy series created by David E. Kelley that stars Robin Williams and Sarah Michelle Gellar. The single-camera project premiered on CBS on September 26, 2013, as part of the 2013–14 American television season as a Thursday night 9 pm entry. Bill D'Elia, Dean Lorey, Jason Winer, John Montgomery and Mark Teitelbaum serve as executive producers for 20th Century Fox Television.",
      "origin_country": [
        "US"
      ],
      "poster_path": null,
      "popularity": 0.075407,
      "name": "The Crazy Ones",
      "vote_average": 5.3,
      "vote_count": 4
    }
  ],
  "total_pages": 4,
  "total_results": 64
}

 

 

11. Add to Watchlist

관심 목록에 영화 또는 TV 프로그램을 추가합니다.

 

즐겨찾기 추가와 마찬가지로 필수로 전달할 파라메터 값들이 많습니다. 

개별 컨텐츠를 구분해야 하기 때문입니다.

 

POST 방식으로만 동작합니다.

POST 방식 동작 확인은 코드를 구현해야 하므로 구현 방법 및 소스코드는 E-Book에 적겠습니다.

 

 

 

반응형