46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
import requests
|
|
|
|
API_KEY = "SECRET" #Reemplazar por la del .env ( no puedo leer realmente un archivo en haos con estos scripts :/ )
|
|
PLAYLIST_ID = "PLSRBwQZwqGmKf9dHlAuhKSyNy0cH-3RyT"
|
|
|
|
def get_videos():
|
|
"""Obtiene todos los IDs de video de una playlist de YouTube."""
|
|
video_ids = []
|
|
next_page_token = None
|
|
|
|
while True:
|
|
params = {
|
|
"part": "contentDetails",
|
|
"maxResults": 50,
|
|
"playlistId": PLAYLIST_ID,
|
|
"key": API_KEY,
|
|
}
|
|
|
|
if next_page_token:
|
|
params["pageToken"] = next_page_token
|
|
|
|
response = requests.get(
|
|
"https://youtube.googleapis.com/youtube/v3/playlistItems",
|
|
params=params,
|
|
headers={"accept": "application/json"},
|
|
).json()
|
|
|
|
# Manejo de errores
|
|
if "error" in response:
|
|
print(f"Error en la API: {response['error']['message']}")
|
|
return []
|
|
|
|
# Extraer IDs de video
|
|
for item in response.get("items", []):
|
|
video_ids.append(item["contentDetails"]["videoId"])
|
|
|
|
# Verificar si hay más páginas
|
|
next_page_token = response.get("nextPageToken")
|
|
if not next_page_token:
|
|
break
|
|
|
|
return [f"https://www.youtube.com/watch?v={video_id}" for video_id in video_ids]
|
|
|
|
|
|
print(get_videos())
|