Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

🎵 VK → Telegram Audio Bot

Бот скачивает аудиотреки из VK и отправляет их в Telegram.
Просто отправьте боту ссылку на трек — и получите MP3 файл прямо в чате.


Как это выглядит

Вы → боту: https://vk.com/audio-2001856263_135856263
Бот → вам: 🎵 kizaru, ICEGERGERT — Fake ID  [аудиофайл]

Быстрый старт

1. Установите зависимости

pip install requests

Опционально — ffmpeg для лучшего качества MP3:

# Windows
winget install ffmpeg

# Linux / macOS
sudo apt install ffmpeg   # или brew install ffmpeg

2. Получите токены

VK токен:

  1. Перейдите на vkhost.github.io
  2. Выберите Kate Mobile и нажмите «Разрешить»
  3. Из адресной строки скопируйте токен — это часть URL между access_token= и &expires_in

Telegram токен:

  1. Напишите @BotFather в Telegram
  2. Отправьте /newbot и следуйте инструкциям
  3. Скопируйте токен вида 1234567890:AAH...

3. Запустите бота

python vk_tg_bot.py

При запуске бот спросит токены:

Введите токен VK: vk1.a.xxxxx
Введите токен TG: 1234567890:AAH...
TG бот: @your_bot_name
Бот запущен. Ctrl+C для остановки

Использование

Напишите боту в Telegram ссылку на трек из VK:

https://vk.com/audio-2001856263_135856263

Бот скачает трек и пришлёт его как аудиофайл. Поддерживается любой публичный трек VK — даже чужой, не из вашего плейлиста.

Команды:

  • /start — приветствие и инструкция

Как это работает

Прямой доступ к аудио VK через API ограничен. Бот обходит это через следующую схему:

1. Пользователь присылает ссылку в Telegram
        ↓
2. Бот вызывает VK API: messages.send (отправляет трек себе в избранное)
        ↓
3. VK Longpoll перехватывает сообщение — в нём уже есть живая ссылка на MP3
        ↓
4. Бот скачивает аудио (через ffmpeg или склейку HLS-сегментов)
        ↓
5. Отправляет MP3 пользователю в Telegram
        ↓
6. Удаляет сообщение из избранного VK (messages.delete)

VK отдаёт аудио в формате HLS (.m3u8 плейлист → .ts сегменты). Бот склеивает сегменты в один MP3 файл. Если установлен ffmpeg — используется он, это даёт лучшее качество и совместимость.

Несколько пользователей одновременно

Бот корректно обрабатывает параллельные запросы. Каждый запрос сохраняется в словаре pending:

pending = {
    "audio_key": tg_chat_id  # кому вернуть результат
}

Когда приходит трек из VK — бот знает, какому именно пользователю его отправить.


Требования

Компонент Версия
Python 3.10+
requests любая свежая
ffmpeg опционально

Ограничения

  • Файлы больше 50 МБ Telegram не принимает — бот сообщит об этом
  • Токен VK может протухнуть если вы смените пароль или выйдете со всех устройств
  • Треки, недоступные в вашем регионе, скачать не получится

Структура проекта

vk_tg_bot.py   — основной файл бота
README.md      — этот файл

Лицензия

MIT

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages