
구글에서 제공하는 유튜브 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 데이터를 직접 사용했습니다.

'Backend' 카테고리의 다른 글
| 동시성 문제 해결 (Kotlin, Spring Boot) (3) | 2025.08.07 |
|---|---|
| Preflight란? (CORS) (0) | 2025.04.28 |
| JetBrains IDE에서 GitHub Copilot 사용하기 (0) | 2025.03.17 |
| Kotlin 백엔드 개발자를 위한 Java 개념 정리 (2) | 2025.03.17 |
| M1 MacOS Ruby & Rails 셋팅 (ruby build failed error, rbenv) (0) | 2024.08.16 |