vidverse / app /functions /youtube_summarizer.py
badal
fix: url support
77821aa
raw
history blame contribute delete
941 Bytes
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