File size: 1,705 Bytes
cc144af
104d0ec
cc144af
104d0ec
cc144af
104d0ec
 
cc144af
104d0ec
09cb6ce
104d0ec
 
09cb6ce
104d0ec
 
 
 
 
 
 
 
 
 
 
 
 
09cb6ce
104d0ec
09cb6ce
104d0ec
09cb6ce
cc144af
09cb6ce
104d0ec
cc144af
104d0ec
09cb6ce
 
 
104d0ec
 
 
cc144af
 
 
104d0ec
 
 
 
cc144af
104d0ec
 
 
cc144af
 
09cb6ce
cc144af
09cb6ce
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import gradio as gr
import pytube
from transformers import pipeline
from textblob import TextBlob

# Initialize sentiment analysis pipeline
sentiment_analyzer = pipeline("sentiment-analysis")

def analyze_youtube_content(youtube_url, transcript_text=""):
    """Analyze YouTube content"""
    results = {}
    
    # Get video info
    if youtube_url:
        try:
            yt = pytube.YouTube(youtube_url)
            results["video_info"] = {
                "title": yt.title,
                "status": "success"
            }
        except Exception as e:
            results["video_info"] = {
                "status": "error",
                "message": str(e)
            }
    
    # Analyze transcript
    if transcript_text:
        # TextBlob sentiment
        blob = TextBlob(transcript_text)
        sentiment = blob.sentiment
        
        # Hugging Face sentiment
        hf_result = sentiment_analyzer(transcript_text[:512])[0]
        
        results["sentiment"] = {
            "polarity": round(sentiment.polarity, 2),
            "assessment": "positive" if sentiment.polarity > 0 else "negative" if sentiment.polarity < 0 else "neutral",
            "huggingface": hf_result["label"]
        }
    
    return results

# Create Gradio interface
demo = gr.Interface(
    fn=analyze_youtube_content,
    inputs=[
        gr.Textbox(label="YouTube URL"),
        gr.Textbox(label="Transcript Text", lines=10)
    ],
    outputs=gr.JSON(label="Analysis Results"),
    title="YouTube Viral Moment Analyzer",
    description="Analyze viral moments from YouTube videos using ML models"
)

# Launch with MCP server enabled
if __name__ == "__main__":
    demo.launch(mcp_server=True)