Traffic Cardinal Traffic Cardinal написал 17.01.2025

Гоним трафик в TG-каналы с помощью загрузчика музыки с YouTube

Traffic Cardinal Traffic Cardinal написал 17.01.2025
5 мин
0
112
Содержание

В середине 2024-го мы уже публиковали материал о том, как сделать бот для скачивания музыки из VK, чтобы с его помощью генерировать трафик в Telegram-каналах. В конце 2024-го был бот для скачивания роликов с YouTube. Новый бот объединяет в себе две эти идеи и скачивает музыку прямо из ролика. Рассуждая о том, может ли это использоваться для арбитража, мы провели ресерч — и да, такие боты есть, и трафик в Telegram-каналах они генерируют. В то же время, в отличие от ботов для скачивания музыки из VK или видео с YouTube, рекламы казиков в них мы не видели. Что, впрочем, даже хорошо — ведь будет меньше конкурентов.

banner banner

Принцип работы бота для скачивания музыки из YouTube

Алгоритм данного бота тривиален. Во многом это обеспечено тем, что точно так же, как и в боте для скачивания видео, мы решили не добавлять функционал попрошайки — ведь уже есть парсер музыки. Кроме того, в боте нет кнопок, что также облегчает и код, и его восприятие новичками. В целом же алгоритм следующий:

  1. Бот проходит авторизацию по bot_api в Telegram.
  2. Прослушивает эфир.
  3. Если сообщение юзера не ссылка на видео с YouTube, просит дать ссылку в подходящем формате.
  4. Если сообщение — ссылка, то бот обращается к YouTube по API, получает аудиопоток и сохраняет его на сервер.
  5. После сохранения он конвертирует аудиопоток в mp3-файл.
  6. После сохранения файла — отправляет его пользователю.
  7. В случае возникновения ошибок при сохранении или конвертации — извещает об этом пользователя.

Важно: идеальное место внедрения попрошайки — сразу после шага 5. Это практически гарантирует, что пользователь не уйдет без своей песенки после подписки.

Пошаговая инструкция, как сделать Telegram-бот для скачивания музыки с YouTube

В первую очередь нужен поддерживающий Python сервер — можно использовать и другие ЯП, но в нашем примере используется Python. Такой сервер можно либо арендовать, либо развернуть на своем ПК. Для тестов советуем именно второй вариант — арендовать всегда успеете, если не передумаете.

Затем сервер нужно настроить под данный бот — пишем в консоли:

pip install telebot

Затем:

pip install yt_dlp

Настройка завершена. Далее — получение токена.

  1. Заходим в BotFather, делаем все по инструкции из его ответа. Сохраняем токен.
  2. На сервере создаем текстовый файл, переименовываем в bot.py, в него вставляем:
    import telebot
    import yt_dlpimport os
    from mutagen.mp3 import MP3
    BOT_TOKEN = '
    ТОКЕН СЮДА'
    bot = telebot.TeleBot(BOT_TOKEN)
    def download_and_convert_audio(youtube_url):
    options = {
    'format': 'bestaudio/best',
    'quiet': True,
    'outtmpl': 'dow/%(title)s.%(ext)s',
    }
    with yt_dlp.YoutubeDL(options) as ydl:
    info = ydl.extract_info(youtube_url, download=True)
    original_file = ydl.prepare_filename(info)
    mp3_file = original_file.rsplit('.', 1)[0] + '.mp3'
    if original_file.endswith('.webm'):
    try:
    with open(original_file, 'rb') as source, open(mp3_file, 'wb') as target:
    target.write(source.read())
    return mp3_file
    except Exception as e:
    return f"Ошибка при конвертации: {e}"
    else:
    return original_file
    @bot.message_handler(commands=['start'])
    def send_welcome(message):
    bot.reply_to(message, "Привет! Отправь мне ссылку на YouTube-видео, и я пришлю тебе аудиофайл в формате MP3.")
    @bot.message_handler(content_types=['text'])
    def handle_message(message):
    youtube_url = message.text.strip()
    if "youtube.com" in youtube_url or "youtu.be" in youtube_url:
    try:
    bot.send_message(message.chat.id, "Скачиваю и конвертирую аудиофайл, подождите немного...")
    result = download_and_convert_audio(youtube_url)
    if os.path.exists(result):
    bot.send_message(message.chat.id, f"Аудиофайл готов: `{result}`. Теперь отправляю...")
    send_audio(message, result)
    else:
    bot.send_message(message.chat.id, f"Произошла ошибка: {result}")
    except Exception as e:
    bot.send_message(message.chat.id, f"Произошла ошибка: {e}")
    else:
    bot.reply_to(message, "Пожалуйста, отправьте корректную ссылку на YouTube-видео.")
    def send_audio(message, audio_path):
    try:
    print(f"Отправка файла: {audio_path}")
    with open(audio_path, 'rb') as audio_file:
    bot.send_audio(message.chat.id, audio_file)
    except Exception as e:
    bot.send_message(message.chat.id, f"Произошла ошибка при отправке: {e}")
    if not os.path.exists('dow'):
    os.makedirs('dow')
    bot.polling()
  3. Заменяем “ТОКЕН СЮДА” на свой токен. Именно красный текст — не кавычки.
  4. Сохраняем файл.
  5. Запускаем бот командой python bot.py

На WARNING не обращаем внимание — его можно убрать, но это увеличило бы код на 30–50 строк. А все работает и без этого. Само предупреждение же говорит о том, что потерян видеоряд — так и задумано, ибо нам незачем его загружать
На WARNING не обращаем внимание — его можно убрать, но это увеличило бы код на 30–50 строк. А все работает и без этого. Само предупреждение же говорит о том, что потерян видеоряд — так и задумано, ибо нам незачем его загружать

Бот запущен — тестим, все ли работает.

Демонстрация работы

Теоретически бот может работать и с большими роликами, но так как он предназначен для других задач, на практике мы это не проверяли. Песен по 4 часа не существует
Теоретически бот может работать и с большими роликами, но так как он предназначен для других задач, на практике мы это не проверяли. Песен по 4 часа не существует

Как видим, все работает — бот возвращает mp3-файл, доступный для скачивания. В подтверждение тому — последний скриншот, где файл запущен в плеере
Как видим, все работает — бот возвращает mp3-файл, доступный для скачивания. В подтверждение тому — последний скриншот, где файл запущен в плеере

Подводя итоги

Вот и все — бот готов! Просто, не правда ли? Дальше либо крутите рекламу прямо через бот, либо переливаете трафик на каналы с помощью модуля-попрошайки. Подписывайтесь на наш Telegram, чтобы первыми получать готовый исходный код ботов для арбитражных задач.

Здравствуйте! У вас включен блокировщик рекламы, часть сайта не будет работать!