본문 바로가기

Backend

구글 유튜브 API (YouTube Data API) 활용

반응형

 

구글에서 제공하는 유튜브 API를 활용해서 홈페이지에서 사용 가능한 데이터를 만들어봤습니다.

예를 들면 매일 하루마다 업데이트되는 데이터로 홈페이지 메인에 썸네일 및 링크를 보여주도록 합니다.

 

그러면 아래와 같이 진행을 해볼까요?

 

1. API 키 발급 및 채널 ID

공식 레퍼런스

 

YouTube Data API 개요  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. YouTube Data API 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 소개 이 문서는 YouTube와 상호작용하

developers.google.com

 

API 키 발급받는 내용에 대해 좋은 포스팅이 있어서 공유합니다.

 

YouTube Data API 키 발급받기

YouTube Data API 키 발급받기 YouTube API를 사용하기 위해서는 키가 필요한데 발급받는 과정은 다음과 같다. 1) https://console.developers.google.com/apis 접속 후 좌측 라이브러리 선택 2) YouTube Data API v3 선택

brunch.co.kr

 

채널 ID 확인

 

YouTube 사용자 및 채널 ID 찾기 - YouTube 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

2. 코드 작성

매일 하루에 한번씩 업데이트되도록 만들기 위해 AWS의 람다(lambda) 함수를 사용했습니다.

 

데이터를 조회하기 위한 request code

URL = 'https://www.googleapis.com/youtube/v3/search'
params = {
    'part': 'snippet',
    'key': os.getenv('YOUTUBE_KEY'),
    'channelId': os.getenv('YOUTUBE_CHANNELID'),
    'maxResults': 10,
    'order': 'date',
    'type': 'video'
}

response = requests.get(URL, params=params)

 

 

데이터 조회 유무에 따른 code

if response.status_code == 200:
    json_data = json.loads(response.text)
    http = urllib3.PoolManager()

    # s3 업로드 -> youtube_thumbnail.json 파일로 업로드
    s3 = boto3.client('s3')

    # 업로드할 파일명 및 버킷 정보
    bucket_name = "youtube_data"
    s3_key = "youtube_thumbnail.json"

    # JSON 데이터를 문자열로 변환
    json_content = json.dumps(json_data, indent=4)

    # S3에 업로드
    s3.put_object(
        Bucket=bucket_name,
        Key=s3_key,
        Body=json_content,
        ContentType="application/json"
    )

    return {
        'statusCode': 200,
        'body': json.dumps('Requests to all URLs completed successfully.')
    }
else:
    logger.error("구글 API 요청 실패")
    return {
        'statusCode': response.status_code,
        'body': json.dumps('Google API request failed')
    }

 

결과 데이터는 S3 버킷으로 업로드가 되도록 작성되었습니다.

 

이후에 저장된 데이터를 어떻게 사용할지는 고민해보면 좋을것 같습니다.

저의 경우에는 S3 경로를 접근할 수 있도록 권한을 설정하여 json 데이터를 직접 사용했습니다.

 

반응형