Spaces:
Sleeping
Sleeping
import re, os | |
import requests | |
from youtube_transcript_api import YouTubeTranscriptApi | |
API_URL = os.environ.get("SUMMARIZE_API_URL") | |
API_TOKEN = os.environ.get("SUMMARIZE_API_TOKEN") | |
headers = {"Authorization": f"Bearer {API_TOKEN}"} | |
def extract_video_id(youtube_url): | |
video_id_pattern = r"(?:/shorts/|v=)([a-zA-Z0-9_-]+)(?:&|\?|$)" | |
match = re.search(video_id_pattern, youtube_url) | |
data = re.findall(r"(?:v=|\/)([0-9A-Za-z_-]{11}).*", youtube_url) | |
if match: | |
video_id = match.group(1) | |
return video_id | |
elif data: | |
return data[0] | |
else: | |
return None | |
def youtube_summarizer_handler(link): | |
video_id = extract_video_id(link) | |
subs = YouTubeTranscriptApi.get_transcript(video_id) | |
texts = " ".join([sub["text"] for sub in subs]) | |
payload = {"inputs": texts} | |
response = requests.post(API_URL, headers=headers, json=payload) | |
summary = response.json()[0] | |
return summary |