FastAPI를 사용하여 실시간 유튜브 랭킹 서비스 구현하기

서론

유튜브는 현재 세계에서 가장 인기 있는 동영상 공유 플랫폼 중 하나입니다. 많은 사람들이 유튜브에서 동영상을 시청하고 구독하며, 이로 인해 랭킹 시스템이 중요해집니다. 이 블로그 포스트에서는 FastAPI를 사용하여 실시간으로 유튜브 랭킹을 제공하는 서비스를 구현하는 방법에 대해 알아보겠습니다.

준비물

단계별 진행

1. FastAPI 설치

FastAPI를 설치하기 위해 다음 명령어를 사용합니다:

pip install fastapi

2. YouTube Data API 키 생성

YouTube Data API를 사용하기 위해 Google Developers Console에서 API 키를 생성해야 합니다. 다음 단계를 따라 생성하세요:

  1. Google Developers Console에 접속합니다.
  2. 새 프로젝트를 만들고 이름을 지정합니다.
  3. “API 및 인증”으로 이동하고 “API” 탭을 클릭합니다.
  4. “YouTube Data API v3”를 찾아서 사용 설정합니다.
  5. “사용자 인증 정보” 탭으로 이동하고 “API 키”를 생성합니다.

생성한 키를 기록해두세요. 이 키는 나중에 FastAPI와 YouTube Data API를 연결할 때 사용됩니다.

3. FastAPI 프로젝트 구성

FastAPI 프로젝트를 구성하기 위해 다음 파일과 디렉토리를 생성합니다:

myapp/
├── main.py
├── requirements.txt

main.py 파일에는 FastAPI 라우터와 핸들러를 작성합니다.

4. FastAPI 애플리케이션 작성

main.py 파일을 열고 아래 코드를 작성합니다:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

이 코드는 FastAPI 애플리케이션을 생성하고 루트 엔드포인트를 생성합니다.

5. YouTube API를 호출하는 함수 작성

main.py에 다음 코드를 추가하여 YouTube API를 호출하는 함수를 작성합니다:

from googleapiclient.discovery import build

def get_youtube_ranking():
    api_key = "YOUR_YOUTUBE_API_KEY"
    youtube = build('youtube', 'v3', developerKey=api_key)
    request = youtube.videos().list(
        part="snippet",
        chart="mostPopular",
        maxResults=10
    )
    response = request.execute()
    return response

위의 코드에서 YOUR_YOUTUBE_API_KEY를 생성한 YouTube Data API 키로 대체해야 합니다.

6. FastAPI 핸들러 작성

main.py에 다음 코드를 추가하여 FastAPI 핸들러를 작성합니다:

@app.get("/ranking")
def get_youtube_ranking():
    youtube_ranking = get_youtube_ranking()
    return youtube_ranking

이 코드는 /ranking 엔드포인트를 생성하고, 해당 엔드포인트를 호출할 때 랭킹 정보를 반환합니다.

7. FastAPI 서버 실행

터미널에서 다음 명령을 실행하여 FastAPI 서버를 실행합니다:

uvicorn main:app --reload

8. 유튜브 랭킹 확인

브라우저에서 http://localhost:8000/ranking에 접속하면 실시간 유튜브 랭킹을 확인할 수 있습니다.

결론

FastAPI를 사용하여 실시간 유튜브 랭킹 서비스를 구현하는 방법에 대해 알아보았습니다. FastAPI는 빠른 속도와 간편한 문법을 제공하는 웹 프레임워크로, 유튜브 API와 연동하여 실시간 정보를 애플리케이션에 제공하는 것이 가능합니다. 이를 통해 사용자들은 언제든지 최신 유튜브 랭킹을 확인할 수 있습니다.

#FastAPI #유튜브랭킹