일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- PostgreSQL 설치 시 에러
- 디자인 패턴
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 프로그래머스 코딩테스트 연습
- c#
- pycharm
- git
- Firefox
- 파이썬
- selenium
- 애드센스
- 브랜디
- WPF
- 프로그래머스 코딩테스트 연습문제
- 프로그래머스 월간 코드 챌린지
- 바이오데이터 엔지니어
- terraform
- 프로그래머스 월간 코드 챌린지 시즌1
- 스코페2021
- Spring Boot
- heroku
- 클린 코드
- Codeforces
- FastAPI
- Word Cloud
- PostgreSQL
- 프로그래머스 코딩 테스트 연습
- github actions
- Python
- github
Archives
- Today
- Total
프로그래밍 연습하기
Youtube 재생목록(Playlist)안의 동영상 ID 얻기 본문
반응형
Youtube 재생목록에 어떤 동영상들이 있는지 가져오려고 합니다.
처음에는 파이썬의 패키지인 Youtube-dl을 사용해야하나 싶었는데
방법을 알아보니 구글에서 제공하는 API가 있었습니다.
그런데 먼저 준비해야될 것은
Google Cloud Console(https://console.cloud.google.com/) 에서 프로젝트를 생성 후
API 및 서비스 -> 라이브러리에서
YouTube Data API v3 을 사용 설정하고
API Key를 만들어서 그 키로 API를 사용해야 됩니다.
def get_playlist_items(playlist_id = None):
playlist_id = "유튜브 재생목록 ID"
api_key = os.getenv("YOUTUBE_API_KEY") # 발급받은 API KEY 입력
next_page_token = True
result = []
while next_page_token:
request_url = "https://youtube.googleapis.com/youtube/v3/playlistItems?"\
f"part=snippet&playlistId={playlist_id}&key={api_key}&maxResults=50"
if next_page_token is not True:
request_url += f"&pageToken={next_page_token}"
res = requests.get(request_url)
res_json = res.json()
res_items = res_json.get("items")
if res_items:
for _item in res_items:
snippet = _item["snippet"]
resource_id = snippet["resourceId"]["videoId"]
title = snippet["title"]
item_dict = dict(title=title, resource_id=resource_id)
result.append(item_dict)
next_page_token = res_json.get("nextPageToken")
# next_page_token = None # 한번만 하려면 위의 라인 대신 이 라인 사용
pprint.pprint(result)
위와 같이 간단한 코드를 통해서 사용했는데요.
이 API는 한번에 불러올 수 있는 개수가 최대 50개까지라서
반복문을 통해 nextPageToken으로 계속 다음 목록을 요청해서
모든 동영상 정보를 가져올 수 있게 했습니다.
저는 일단 동영상의 id만 필요해서 title과 id정도만 얻어와보는 예제를 작성했는데,
아래의 링크를 참조하시면 썸네일 등 다양한 정보를 얻어올 수 있는 걸 확인하실 수 있습니다.
API의 자세한 정보는 다음 링크를 참고하세요.
https://developers.google.com/youtube/v3/docs/playlistItems/list?hl=ko
반응형
'Python' 카테고리의 다른 글
Python Selenium Firefox 사용 시 Message: binary is not a Firefox executable 에러 (0) | 2023.08.19 |
---|---|
Alembic alembic.ini 파일 sqlalchemy.url 동적으로 수정하기 (0) | 2023.08.11 |
Gunicorn access_log_format이 적용되지 않는 문제 (0) | 2023.08.08 |
Pycharm Unexpected Argument 경고 (1) | 2021.07.31 |
Venv가 활성화 되어도 경로 인식을 못할 때 (0) | 2021.06.08 |
Comments