Spaces:
Sleeping
Sleeping
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)
|