Spaces:
Running
Running
from datetime import timedelta | |
#from pyyoutube import playlist | |
import re | |
import gradio as gr | |
from urllib.parse import urlparse, parse_qs | |
from contextlib import suppress | |
import os | |
api_key = os.getenv("api_key_secret") | |
import googleapiclient | |
from googleapiclient.discovery import build | |
from googleapiclient.errors import HttpError | |
import datetime | |
youtube = build('youtube', 'v3', developerKey=api_key) | |
def get_playlistname_from_link(playlist_link): | |
playlist_id = re.search(r'list=(.*)', playlist_link) | |
pl_request = youtube.playlistItems().list( | |
part="contentDetails,snippet", | |
playlistId=playlist_id.group(1), | |
maxResults=50 | |
) | |
pl_response= pl_request.execute() | |
if 'items' in pl_response: | |
playlist = pl_response['items'][0] | |
title = playlist['snippet']['title'] | |
return title | |
def get_playlistname_from_id(playlist_id): | |
playlist_id = playlist_id | |
pl_request = youtube.playlistItems().list( | |
part="contentDetails,snippet", | |
playlistId=playlist_id.group(1), | |
maxResults=50 | |
) | |
pl_response= pl_request.execute() | |
if 'items' in pl_response: | |
playlist = pl_response['items'][0] | |
title = playlist['snippet']['title'] | |
return title | |
def get_playlistid_from_link(playlist_link): | |
match = re.search(r'list=([^&]+)', playlist_link) #It searches for the string 'list=' followed by >=1 characters that are not '&'. | |
if match: | |
return match.group(1) | |
return None | |
def extract_playlist_id(playlistlink): | |
match = re.search(r'list=([^&]+)', playlistlink) #It searches for the string 'list=' followed by >=1 characters that are not '&'. | |
if match: | |
return match.group(1) | |
return None | |
playlist_id = extract_playlist_id(playlistlink) | |
if playlist_id is None: | |
return False | |
search_request = youtube.playlists().list( | |
part='id', | |
id=playlist_id, | |
maxResults=1 | |
) | |
search_response = search_request.execute() | |
if 'items' in search_response: | |
try: | |
playlistdict = search_response['items'][0] | |
print("ID of playlist is:- ",playlistdict['id']) | |
return playlistdict['id'] | |
except: | |
#print("Video not found.") | |
return False | |