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