File size: 941 Bytes
2f2406a
 
 
 
 
 
 
 
 
 
 
 
77821aa
2f2406a
 
 
77821aa
 
2f2406a
 
77821aa
2f2406a
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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