35 lines
842 B
Python
35 lines
842 B
Python
from dotenv import load_dotenv
|
|
import os
|
|
import requests
|
|
|
|
load_dotenv()
|
|
YOUTUBE_API_KEY = os.getenv("YOUTUBE_API_KEY")
|
|
YOUTUBE_API_BASE = "https://www.googleapis.com/youtube/v3"
|
|
|
|
|
|
def get_uploads_playlist(channel_name: str):
|
|
url = f"{YOUTUBE_API_BASE}/channels"
|
|
params = {
|
|
"forHandle": channel_name,
|
|
"key": YOUTUBE_API_KEY
|
|
}
|
|
|
|
res = requests.get(url, params)
|
|
channel_id = res.json().get("items")[0]["id"]
|
|
|
|
return f"UULF{channel_id[2:]}"
|
|
|
|
|
|
def get_all_videos(playlist_id: str):
|
|
url = f"{YOUTUBE_API_BASE}/playlistItems"
|
|
params = {
|
|
"playlistId": playlist_id,
|
|
"part": "contentDetails",
|
|
"maxResults": 50,
|
|
"key": YOUTUBE_API_KEY
|
|
}
|
|
|
|
res = requests.get(url, params)
|
|
items = res.json().get("items")
|
|
|
|
return [i["contentDetails"]["videoId"] for i in items]
|