import gradio as gr import requests import os from pytrends.request import TrendReq YT_API_KEY = os.getenv("YT_API_KEY", "AIzaSyCy8ROvJzi5DrBV-7PbwWq7QQ4w0e_F8rU") def get_video_id(url): """यह फंक्शन अब दोनों तरह के लिंक को सपोर्ट करेगा""" if "v=" in url: return url.split("v=")[1].split("&")[0] elif "youtu.be/" in url: return url.split("youtu.be/")[1].split("?")[0] return None def get_video_stats(video_id): url = f"https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics&id={video_id}&key={YT_API_KEY}" response = requests.get(url) data = response.json() if "items" in data and data["items"]: return data["items"][0] return None def get_trending_trends(niche): try: pytrends = TrendReq(hl='en-US', tz=360) pytrends.build_payload(kw_list=[niche], timeframe='now 7-d') trends = pytrends.interest_over_time() top_keywords = trends.sort_values(by=niche, ascending=False).head(3).index.tolist() return top_keywords except: return ["AI Trends 2026", "Tech", "Gadgets"] def boost_video(video_url): if not video_url: return "❌ कृपया वैलिड YouTube लिंक डालें!" video_id = get_video_id(video_url) if not video_id: return "❌ अमान्य YouTube लिंक! (कृपया सही लिंक डालें)" data = get_video_stats(video_id) if not data: return "❌ वीडियो नहीं मिला! वीडियो पब्लिक है और API Key सही है चेक करें।" snippet = data["snippet"] stats = data["statistics"] title = snippet["title"] channel = snippet["channelTitle"] views = int(stats.get("viewCount", 0)) likes = int(stats.get("likeCount", 0)) comments = int(stats.get("commentCount", 0)) niche = title.split()[0] if title else "General" trends = get_trending_trends(niche) ctr_pred = round(len(title) * 0.5 + 5, 1) report = f""" 🚀 **यूट्यूब बूस्ट रिपोर्ट** 📺 **टाइटल:** {title} 🎥 **चैनल:** {channel} 👁️ **व्यूज़:** {views:,} 👍 **लाइक्स:** {likes:,} 💬 **कमेंट्स:** {comments:,} 📈 **CTR प्रेडिक्शन:** {ctr_pred}% 🔥 **ट्रेंडिंग टॉपिक्स:** {", ".join(trends)} 🛠️ **बूस्ट प्लान:** 1. टाइटल में "{trends[0] if trends else 'Trending'}" जोड़ें 2. थंबनेल को लाल/हाइ-कंट्रास्ट बनाएँ 3. रिटेंशन बढ़ाने के लिए बीच में प्रश्न डालें 4. रात 8:30–10:00 PM (IST) पर अपलोड करें 5. पहले 2 घंटे में 5-6 रियल कमेंट करें """ return report with gr.Blocks() as demo: gr.Markdown("## 🚀 YouTube वीडियो बूस्ट टूल (Gradio)") gr.Markdown("नीचे अपना YouTube लिंक डालें और 'बूस्ट करें' पर क्लिक करें।") with gr.Row(): with gr.Column(scale=3): video_url = gr.Textbox(label="YouTube लिंक", placeholder="https://www.youtube.com/watch?v=... या https://youtu.be/...") with gr.Column(scale=1): btn = gr.Button("🚀 बूस्ट करें", variant="primary") output = gr.Markdown(label="बूस्ट रिपोर्ट") btn.click(fn=boost_video, inputs=video_url, outputs=output) if __name__ == "__main__": demo.launch(theme=gr.themes.Soft())