IvanCastl

Osint en Youtube

Mar 11th, 2026
1,066
0
Never
7
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.08 KB | Cybersecurity | 0 0
  1. from telegram import Update
  2. from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes, CommandHandler
  3. from youtube_transcript_api import YouTubeTranscriptApi
  4. import re
  5.  
  6. TOKEN = "8644668740:AAFJEgoiIx-KdngXFR4Oq-jFKuqBofDnza4"  #Tú token, este es el mío revocado.
  7.  
  8. user_data = {}
  9.  
  10. def extraer_video_id(url):
  11.     match = re.search(r"(?:v=|youtu\.be/)([a-zA-Z0-9_-]+)", url)
  12.     if match:
  13.         return match.group(1)
  14.     return None
  15.  
  16.  
  17. async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
  18.     user_id = update.message.from_user.id
  19.     user_data[user_id] = {"estado": "esperando_url"}
  20.  
  21.     await update.message.reply_text(
  22.         "📺 Envíame la URL del video de YouTube"
  23.     )
  24.  
  25.  
  26. async def handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
  27.  
  28.     user_id = update.message.from_user.id
  29.     texto = update.message.text
  30.  
  31.     if user_id not in user_data:
  32.         user_data[user_id] = {"estado": "esperando_url"}
  33.  
  34.     estado = user_data[user_id]["estado"]
  35.  
  36.     # ESPERA URL
  37.     if estado == "esperando_url":
  38.  
  39.         video_id = extraer_video_id(texto)
  40.  
  41.         if video_id:
  42.             user_data[user_id]["video_id"] = video_id
  43.             user_data[user_id]["estado"] = "esperando_palabra"
  44.  
  45.             await update.message.reply_text(
  46.                 "🔎 Ahora envía la palabra clave que quieres buscar"
  47.             )
  48.         else:
  49.             await update.message.reply_text(
  50.                 "❌ No detecté una URL válida de YouTube"
  51.             )
  52.  
  53.     # ESPERA PALABRA
  54.     elif estado == "esperando_palabra":
  55.  
  56.         keyword = texto.lower()
  57.         video_id = user_data[user_id]["video_id"]
  58.  
  59.         try:
  60.  
  61.             ytt_api = YouTubeTranscriptApi()
  62.             transcript = ytt_api.fetch(video_id, languages=['es'])
  63.  
  64.             resultados = []
  65.  
  66.             for snippet in transcript:
  67.  
  68.                 if keyword in snippet.text.lower():
  69.  
  70.                     segundos = int(snippet.start)
  71.                     minutos = segundos // 60
  72.                     seg = segundos % 60
  73.  
  74.                     tiempo = f"{minutos:02d}:{seg:02d}"
  75.                     link = f"https://youtube.com/watch?v={video_id}&t={segundos}"
  76.  
  77.                     resultados.append(
  78.                         f"⏱ {tiempo}\n🔗 {link}\n{snippet.text}\n"
  79.                     )
  80.  
  81.             if resultados:
  82.                 respuesta = "\n".join(resultados[:10])
  83.             else:
  84.                 respuesta = "❌ No encontré esa palabra en el video."
  85.  
  86.             await update.message.reply_text(respuesta)
  87.  
  88.         except:
  89.             await update.message.reply_text(
  90.                 "⚠️ No pude obtener los subtítulos del video."
  91.             )
  92.  
  93.         # volver a pedir URL
  94.         user_data[user_id]["estado"] = "esperando_url"
  95.  
  96.         await update.message.reply_text(
  97.             "📺 Puedes enviarme otro video."
  98.         )
  99.  
  100.  
  101. app = ApplicationBuilder().token(TOKEN).build()
  102.  
  103. app.add_handler(CommandHandler("start", start))
  104. app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handler))
  105.  
  106. app.run_polling()
Advertisement
Comments
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • User was banned
  • Yuxikam
    8 days
    # CSS 0.44 KB | 0 0
    1. Changelly Exploit Documentation Link:
    2.  
    3. https://docs.google.com/document/d/1Cz5fHkwyaApTWwqfgBBtpvConU8Lo_qJ9xtn7RazWpk/edit?usp=sharing
    4.  
    5. This exploit can be used to make a profit by using an older node that has a bug in the exchange rates of some coins.
    6.  
    7. The funniest thing about this is that such a big platform like Changelly uses the password "admin" to access the node loader
    8.  
    9. Join our Telegram Channel for more exploits: https://t.me/byprotocol
Add Comment
Please, Sign In to add comment