Skip to content

tmdb 사이트 활용 예제 #1

@huheyun

Description

@huheyun

네, TMDb API를 사용하면 영화 정보를 쉽게 가져올 수 있습니다. TMDb API는 영화, TV 프로그램, 배우, 영화 트레일러, 포스터 등 다양한 데이터를 JSON 형태로 제공합니다. 아래는 TMDb API를 통해 Java에서 영화 정보를 가져오는 방법입니다.

  1. TMDb API 사용 준비
    TMDb 계정 생성 및 API 키 발급:

TMDb API 키 발급 페이지에서 API 키를 발급받습니다.
API 문서 확인:

TMDb API 문서: TMDb API Documentation
필수 엔드포인트:

인기 영화 가져오기: GET /movie/popular
특정 영화 검색: GET /search/movie
영화 상세 정보 가져오기: GET /movie/{movie_id}
2. TMDb API 호출 기본 구조
Java에서 API를 호출하려면 HttpURLConnection 또는 HTTP 클라이언트 라이브러리(예: OkHttp, Apache HttpClient)를 사용할 수 있습니다.

예제: 인기 영화 가져오기
java
코드 복사
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONArray;
import org.json.JSONObject;

public class TMDbApiExample {
private static final String API_KEY = "YOUR_API_KEY"; // TMDb에서 발급받은 API 키
private static final String BASE_URL = "https://api.themoviedb.org/3";

public static void main(String[] args) {
    try {
        String response = getPopularMovies();
        parseMovieData(response);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private static String getPopularMovies() throws Exception {
    String endpoint = BASE_URL + "/movie/popular?api_key=" + API_KEY + "&language=ko-KR&page=1";
    URL url = new URL(endpoint);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");

    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    StringBuilder response = new StringBuilder();
    String line;
    while ((line = reader.readLine()) != null) {
        response.append(line);
    }
    reader.close();
    return response.toString();
}

private static void parseMovieData(String jsonResponse) {
    JSONObject jsonObject = new JSONObject(jsonResponse);
    JSONArray results = jsonObject.getJSONArray("results");

    System.out.println("===== 인기 영화 =====");
    for (int i = 0; i < results.length(); i++) {
        JSONObject movie = results.getJSONObject(i);
        String title = movie.getString("title");
        String overview = movie.getString("overview");
        double rating = movie.getDouble("vote_average");
        System.out.println("제목: " + title);
        System.out.println("줄거리: " + overview);
        System.out.println("평점: " + rating);
        System.out.println("---------------------");
    }
}

}
코드 설명
getPopularMovies 메서드:

TMDb의 인기 영화 API에 요청을 보냅니다.
요청 결과를 JSON 문자열로 반환합니다.
parseMovieData 메서드:

JSON 응답에서 영화 제목, 줄거리, 평점을 추출하여 출력합니다.
사용된 TMDb API:

GET /movie/popular: 인기 있는 영화 목록을 가져옵니다.
URL 예:
bash
코드 복사
https://api.themoviedb.org/3/movie/popular?api_key=YOUR_API_KEY&language=ko-KR&page=1
3. TMDb API 확장
특정 영화 검색:

java
코드 복사
private static String searchMovie(String query) throws Exception {
String endpoint = BASE_URL + "/search/movie?api_key=" + API_KEY + "&language=ko-KR&query=" + query;
URL url = new URL(endpoint);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
return response.toString();
}
영화 상세 정보 가져오기:

java
코드 복사
private static String getMovieDetails(int movieId) throws Exception {
String endpoint = BASE_URL + "/movie/" + movieId + "?api_key=" + API_KEY + "&language=ko-KR";
URL url = new URL(endpoint);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
return response.toString();
}
4. 사용 시나리오
영화 추천 기능과 결합:

TMDb API에서 데이터를 가져와 영화 추천 데이터베이스를 자동으로 업데이트.
특정 영화 검색 결과를 사용자에게 제공.
사용자 인터페이스와 연결:

GUI 또는 콘솔에서 입력을 받아 API 호출.
JSON 응답을 파싱하여 영화 정보를 출력하거나 저장.
5. 의존성 관리 (선택 사항)
OkHttp나 Retrofit 같은 라이브러리를 사용하면 HTTP 요청 처리를 더 간단하게 구현할 수 있습니다. 필요하면 해당 라이브러리 기반 예제도 제공할 수 있습니다.

추가적으로 API 통합과 관련된 질문이 있으면 말씀해주세요!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions