ㅁ 개요
O 프로그램 소개
- 이번 글은 이전글(파이썬 유튜브 새로운 영상 올라오면 알림 및 실시간 다운로드하기 - 1.구글 youtube API를 사용하기 위한 환경설정하기)에 이은 3번째 글로 유튜브 API를 이용하여 동영상 전체 갯수, 영상의 제목, URL을 얻어내는 방법을 알아보겠습니다.
O 완성된 프로그램 실행 화면
- 최종 완성된 프로그램의 결과화면은 아래와 같습니다..
1.프로그램을 실행하면 아래와 같이 실행됩니다.
아래 프로그램의 경우 간단하게 특정 유튜브 채널의 전체 동영상 수를 보여주고 있습니다.
아래는 위의 동일한 소스이나 채널의 각종 정보를 API요청으로 모두 가져와 보았습니다.
실제 유튜브 채널에 들어가 보면 정말로 영상이 1개만 존재하는 것을 확인할 수 있습니다.
2. 아래 프로그램 실행 결과 다양한 영상 목록 정보를 가져오는데, 이 중에서 특히 영상의 제목과 URL정보 2개를 출력하여 보여주고 있습니다.
아래 유튜브채널에 가서 확인 결과 최근영상 2개가 위의 프로그램 실행결과 나온것을 알 수 있습니다.
3. 우리가 이전 글에서 API 사용을 위해 설정했던 구글 클라우드 콘솔에서 확인 결과 API요청수를 확인할 수 있습니다.(실제 요청수가 정확하지는 않음)
4. 아래와 같이 구글 클라우드 콘솔에서 '사용 설정된 API 및 서비스' > 할당량 > Queries per day'를 보면 하루 10000개의 쿼리한도가 제한되어 있습니다.
다만, 쿼리 요청수를 어떻게 계산하는지 모르겠지만 실제로 해보면 훨씬 더 적은 수를 사용했음에도 쿼터 제한에 걸리곤 하였습니다. 그래도 하루가 지나면 다시 쿼터제한이 풀리고 10000 쿼리를 요청할 수 있습니다.
O 사전 준비 작업
-채널ID 찾는 방법(예: 유튜브 김*테 채널)
1.유튜브 채널 메인화면에서 마우스 오른쪽 버튼을 클릭하고 '페이지 소스 보기'를 클릭합니다. (메인 화면에서 해야 externalId를 얻을 수 있습니다.)
2.브라우저에서 Ctrl+F 로 검색창에 "externalId"로 찾습니다.
아래에서 채널id은 다음과 같습니다.
UCKTMvIu9a4VGSrpWy-8bUrQ # 김*테
ㅁ 세부 내용
O 완성된 소스
소스 : 1.totalCount.py
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
# 유튜브 데이터 API를 사용하기 위한 API 키
from conf import *
# 채널 ID
CHANNEL_ID = 'UChBYnUkgXUk2rmkQlIMNXNw'
# https://www.youtube.com/channel/UChBYnUkgXUk2rmkQlIMNXNw
# YouTube Data API 클라이언트 생성
youtube = build('youtube', 'v3', developerKey=YOUTUBE_APIKEY)
try:
# 채널 정보 가져오기
channel_response = youtube.channels().list(
part='statistics',
id=CHANNEL_ID
).execute()
print(channel_response)
# 전체 동영상 수 출력
video_count = int(channel_response['items'][0]['statistics']['videoCount'])
print('전체 동영상 수:', video_count)
except HttpError as e:
print('에러 발생:', e)
소스 : 2.view_title&url.py
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
# YouTube Data API의 API key를 입력합니다.
from conf import *
# 가져올 채널의 ID를 입력합니다.
channel_id = 'UCW8UqoC1NrlV4JiqV3hRTbA'
# https://www.youtube.com/channel/UCW8UqoC1NrlV4JiqV3hRTbA 파기차차
# YouTube Data API 클라이언트를 빌드합니다.
youtube = build('youtube', 'v3', developerKey=YOUTUBE_APIKEY)
beforeVideos = []
try:
# 동영상 목록을 가져옵니다.
request = youtube.search().list(
part='id,snippet',
channelId=channel_id,
order='date',
type='video',
maxResults=2
)
response = request.execute()
print(response)
# 동영상 제목과 ID를 출력합니다.
for item in response['items']:
video_title = item['snippet']['title']
video_id = item['id']['videoId']
print(f'{video_title}: {video_id}')
# beforeVideos.append(video_title)
# print(beforeVideos)
except HttpError as e:
print(f'An HTTP error {e.resp.status} occurred:\n{e.content}')
O 주요 내용
1. 1.totalCount.py 소스를 간략하게 살펴보겠습니다.
API 사용을 위한 간련 모듈을 임포트하고, 유튜브 API키를 설정해 줍니다.( line1 ~ 5)
정보를 가져올 유튜브 채널ID를 설정해 줍니다.(채널의 끝부분에 있는 문자열, line7)
유튜브 API사용을 위한 객체를 생성(line 14)하고 youtube객체의 list()함수로 채널의 정보를 요청하고 응답을 받습니다.(line 17~ 21)
이 중에서 우리가 필요한 정보는 전체 동영상 수이므로 'videoCount' 정보만 가져와서 print()로 보여줍니다.
2. 2.view_title&url.py 소스를 살펴보겠습니다.
내용이 거의 동일하나, API 요청 시 내용이 조금 달라졌습니다.
유튜브 채널에서 최신 영상정보 2개만 가져올 수 있도록 요청합니다.(line17~23)
API 응답값에서 우리는 제목과 URL 정보가 필요하므로 이부분만 필터링하여 가져옵니다.(line28~31)
ㅁ 정리
O 우리가 배운 내용
part='statistics',
id=CHANNEL_ID
).execute()
> 2.채널에서 가져올 최신영상 갯수 지정 및 제목과 URL 가져오는API 요청 코드
request = youtube.search().list(
part='id,snippet',
channelId=channel_id,
order='date',
type='video',
maxResults=2
)
오늘은 여기까지이며, 댓글과 하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.
위의 내용이 유익하셨다면, 댓글과 하트 부탁드립니다.
감사합니다.
※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.
'파이썬 실습 > 유튜브 새로운 영상 올라오면 알림 및 실시간 다운로드하기' 카테고리의 다른 글
(최종)파이썬 유튜브 새로운 영상 올라오면 알림 및 실시간 다운로드하기 - 5.위의 내용을 종합하여 원하는 유튜버의 새로운 영상 올라오면 알림 및 실시간 다운로드하기 (0) | 2023.06.09 |
---|---|
파이썬 유튜브 새로운 영상 올라오면 알림 및 실시간 다운로드하기 - 4.유튜브 영상 다운로드 하기 (0) | 2023.06.09 |
파이썬 유튜브 새로운 영상 올라오면 알림 및 실시간 다운로드하기 - 3.변경 사항 체크하기 (0) | 2023.06.09 |
파이썬 유튜브 새로운 영상 올라오면 알림 및 실시간 다운로드하기 - 1.구글 youtube API를 사용하기 위한 환경설정하기 (0) | 2023.06.02 |
파이썬 유튜브 새로운 영상 올라오면 알림 및 실시간 다운로드하기 - 0.소개편 (0) | 2023.06.02 |