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 |