Thumbnail image from DALL-E
다음으로 진행하는 Yougle의 모듈은,
특정 유튜버의 주소를 입력했을 때 그 유튜버의 모든 영상의 링크를 JSON 파일로 다운로드하는 것이다.
macOS 의 경우, pytube
모듈을 임포트해도 뭔가 오류가 나는 경우가 있다. 이럴 땐 이 링크를 참고하자.
Found the solution: install the "Install Certificates.command" in the python 3.9 folder
Python을 사용할 때 발생할 수 있는 SSL/TLS 인증서 관련 문제를 해결하는 데 도움이 된다. 이 과정은 운영 체제에 Python 3.9과 함께 제공되는 SSL/TLS 인증서를 설치한다. 이 과정은 macOS에서 Python을 설치한 후 흔히 필요한 단계 중 하나입니다.
그런데! pytube 보다 더 좋은 API를 발견했다. Google의 Youtube Data API를 사용하면 이 과정을 쉽게 만들 수 있을 것 같아보인다.
먼저 Google Cloud Console에서 새 프로젝트를 만들고, 'YouTube Data API v3'를 활성화하고, '사용자 인증 정보' 탭에서 API 키를 생성하면 된다.
from googleapiclient.discovery import build
import json
import re
def get_channel_id(url):
# 유튜브 채널 URL에서 'UC'로 시작하는 채널 ID를 추출하는 정규 표현식
pattern = r'youtube\.com\/channel\/(UC[-_A-Za-z0-9]{21}[AQgw])'
match = re.search(pattern, url)
if match:
# 정규 표현식에 해당하는 부분을 찾으면, 그 부분을 반환
return match.group(1)
else:
# 채널 ID를 찾지 못하면 None 반환
return None
def get_video_links(api_key, channel_url):
youtube = build('youtube', 'v3', developerKey=api_key)
channel_id = get_channel_id(channel_url)
video_links = []
request = youtube.search().list(part='snippet', channelId=channel_id, maxResults=50, type='video')
response = request.execute()
for item in response['items']:
video_id = item['id']['videoId']
video_link = f'https://www.youtube.com/watch?v={video_id}'
video_links.append({"title": item['snippet']['title'], "link": video_link})
# 결과를 JSON 파일로 저장
with open('video_links.json', 'w', encoding='utf-8') as f:
json.dump(video_links, f, indent=4, ensure_ascii=False)
print("동영상 목록이 'video_links.json' 파일에 저장되었습니다.")
if __name__ == '__main__':
api_key = 'YOUR_API_KEY'
channel_url = input("YouTube 채널 URL을 입력하세요: ")
get_video_links(api_key, channel_url)
그 결과, 내 유튜브 채널 을 입력으로 했을 때
아래와 같은 JSON 파일을 성공적으로 다운로드할 수 있었다!
감사합니다!