들어가기 전 Youtube API 를 사용하여 다양한 기능을 만들 수 있는데 맨날 밤에 유튜브만 보면서 자는 나한테 선물을 주기위해 인기 급상승 동영상을 불러와보도록 하겠음
1. GCP(Google Cloud Console) 접속 :
https://console.cloud.google.com/
2. 프로젝트 생성 :
I : '프로젝트 만들기' 클릭 :
우리가 사용할유튜브 API 컨텐츠는 구글 클라우드 플랫폼에서 제공해주기 때문에 따라서 우리는 구글 클라우드 플랫폼 프로젝트를 생성해야함.
II : YouTube Data API v3 활성화 및 API KEY 등록 :
검색 - YouTube Data API v3 - 사용 클릭
III : API 키 받아오기 :
https://developers.google.com/youtube/v3/docs/videos/list
자 생성이 정상적으로 되었으면 API 사용해 보기 클릭을 해준 이후 내가 가지고 오고싶은 데이터의 API KEY를 할당받는다.
사용자 인증 정보 만들기 - 사용자 데이터 - 공개 데이터 - 다음을 누르게 되면 정상적으로 API 키 발급에 성공하게된다.
API 키는 Django에 세팅하여 유튜브에 다양한 영상들을 호출할 수 있게 도와주는 고유 키가 된다.
YouTube 인기 동영상 가져오기
IIII : 구성요소(중요) :
- API 요청 구성: API 요청은 다음과 같이 구성됨
- part=snippet: 동영상의 기본 정보를 가져옴.
- chart=mostPopular: 인기 동영상 목록을 요청함
- regionCode=KR: 특정 지역 한국 의 인기 동영상을 가져옴
성공적으로 인기있는 동영상을 호출 받았다는 결과를 받아 볼 수 있다.
3 : Django 프로젝트에서 API 키 사용하기
I :
ulr 에서 maxResults=10 -> 5 로 줄여주게되면 한페이지에 인기동영상을 5개만 불러올 수 있음
API 를 호출할 때마다 할당된 포인트가 감소하기 때문에 할당량 초과를 대비하여 조금만 불러옴
Youtube 할당량 계산기
https://developers.google.com/youtube/v3/determine_quota_cost?hl=ko
views.py
def get_youtube_videos(api_key):
url = f'https://www.googleapis.com/youtube/v3/videos?part=snippet&chart=mostPopular&maxResults=10®ionCode=KR&key={api_key}'
# API 요청
response = requests.get(url)
# 응답이 성공적인지 확인
if response.status_code == 200:
data = response.json()
# 'items' 키가 있는지 확인
if 'items' in data:
popular_videos = []
for item in data['items']:
video = {
'title': item['snippet']['title'],
'video_id': item['id'],
'thumbnail_url': item['snippet']['thumbnails']['high']['url']
}
popular_videos.append(video)
return popular_videos
else:
# 'items' 키가 없는 경우, 오류 메시지 또는 다른 정보 로깅
print("No 'items' key in response:", data)
return [] # 또는 적절한 기본값 반환
else:
# 응답이 실패한 경우, 오류 로깅
print("Failed to fetch YouTube videos:", response.text)
return [] # 또는 적절한 기본값 반환
@login_required
def home(request):
# Youtube API 키
api_key = settings.YOUTUBE_API_KEY
# 인기 동영상 목록 가져오기
youtube_videos = get_youtube_videos(api_key)
return render(request, 'home.html', {'popular_videos' : youtube_videos})
II : settings.py 에 Youtube API 키를 추가해줘함. 보안상 이유로 settings.py에서 가져올 수 있도록 구성해줌.
#settings.py
# YouTube API 키
YOUTUBE_API_KEY = 'YOUTUBE_API_KEY'
III : home.html
<!-- HOME.HTML --!>
<!-- 인기 동영상 목록 추가 -->
<div class="popular-videos">
<h2>인기 동영상</h2>
{% for video in popular_videos %}
<div class="video">
<h3>{{ video.title }}</h3>
<a href="https://www.youtube.com/watch?v={{ video.video_id }}" target="_blank">
<img src="{{ video.thumbnail_url }}" alt="{{ video.title }}">
</a>
</div>
{% endfor %}
</div>
요로코롬 css 넣어서 꾸며주면 급상승 인기 동영상 TOP 6 가 예쁘게 나타나는 것을 볼 수 있다.
홀수 리스트를 불러오니까 배열이 안맞아서 6개로 바꿔줌.
'데이터 분석' 카테고리의 다른 글
2. binance 과거 데이터 조회 (0) | 2024.06.17 |
---|---|
1. binance 현재가 조회 (0) | 2024.06.17 |
React (0) | 2023.12.15 |
3.[개발] 국가 별 통화 추이 인사이트 데이터 시각화 정리 [1/3] (0) | 2023.11.29 |
1. [개발] 리그 오브 레전드 API 를 이용하여 전적검색 사이트 (0) | 2023.11.13 |