{"id":15134116,"url":"https://github.com/keller18306/musicfromvk","last_synced_at":"2025-08-27T11:18:58.866Z","repository":{"id":117828832,"uuid":"381472428","full_name":"Keller18306/musicFromVK","owner":"Keller18306","description":"Бот для прослушивания музыки из ВК в Telegram","archived":false,"fork":false,"pushed_at":"2021-09-19T22:04:51.000Z","size":634,"stargazers_count":10,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T15:54:03.681Z","etag":null,"topics":["bot","javascript","keller","music","music-bot","node","node-js","nodejs","telegram","telegram-bot","telegram-bots","telegrambot","ts","typescript","vk","vk-api","vkapi","vkontakte","vkontakte-api"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Keller18306.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-29T19:14:32.000Z","updated_at":"2025-01-25T14:15:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"23e2c638-711d-4d55-841f-8aafccd8ee12","html_url":"https://github.com/Keller18306/musicFromVK","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Keller18306/musicFromVK","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keller18306%2FmusicFromVK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keller18306%2FmusicFromVK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keller18306%2FmusicFromVK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keller18306%2FmusicFromVK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Keller18306","download_url":"https://codeload.github.com/Keller18306/musicFromVK/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keller18306%2FmusicFromVK/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272325427,"owners_count":24914642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","javascript","keller","music","music-bot","node","node-js","nodejs","telegram","telegram-bot","telegram-bots","telegrambot","ts","typescript","vk","vk-api","vkapi","vkontakte","vkontakte-api"],"created_at":"2024-09-26T05:02:53.544Z","updated_at":"2025-08-27T11:18:58.856Z","avatar_url":"https://github.com/Keller18306.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Музыка из ВК в Telegram\nБот для прослушивания музыки из ВК в телеграм\n\n1. [Предыстория](#Предыстория)\n2. [Возможности](#Возможности)\n3. [Установка](#Установка)\n4. [Настройка](#Настройка)\n5. [Запуск](#Запуск)\n6. [Описание кнопок](#Описание-кнопок)\n7. [Доступные группы](#Доступные-группы)\n8. [Доступные команды](#Доступные-команды)\n9. [Поддержка](#Поддержка)\n\n## Предыстория\nВ мой тариф мобильного оператора входит безлимит на Telegram и безлимит на скорости 512 б/сек. Я заметил, что у Telegram скорость побольше, чем 512 б/сек. Слушать музыку из ВК не представлялось возможным из-за малой скорости. Так и появился этот бот.\n\n## Возможности\n1. Прослушивание музыки из `своей библиотеки`\n3. Прослушивание музыки из `рекомендаций`\n3. Прослушивание музыки из `недельного` и `дневного` плейлиса\n4. Прослушивание `популярной` музыки\n5. Прослушивание `новинок`\n6. Управление своей библиотекой (`удаление` и `добавление`)\n7. `Поиск` музыки\n8. Дополнительные возможности (`решить пример`, безопасное `выполнение кода`)\n9. **Полное** контролирование `прав для команд`\n10. Распределение пользователей по `группам` (каждая группа имеет `свои права`)\n11. Слушать музыку `друзей`\n\nПланы на будущее:\n- [ ] Поиск похожих треков по выбранному\n- [ ] Пофиксить баг парсинга битрейта и остальной информации о аудио\n    - [ ] Поддержка ID3v1\n    - [ ] Поддержка ID3v2\n        - [X] Заголовок сверху\n        - [X] Дополнительный заголовок сверху\n        - [X] Фреймы\n        - [ ] padding\n        - [ ] footer\n    - [ ] Поддержка \"голого\" mp3 без ID3\n- [X] Загрузка музыки в telegram напрямую через MTProto\n- [ ] Команда выдачи определённого разрешения пользователю\n- [ ] Автоматическая горячая перезагрузка команды\n- [ ] Пофиксить баг, что страница поиска перестаёт работать после перезагрузки бота\n- [ ] Кэшировать рекомендации (при смене страницы каждый раз новое сейчас получается)\n- [ ] Загрузить видео по ID из вк в тг\n- [ ] Загрузить видео по URL в тг\n- [ ] Прослушивание музыки из других плейлистов\n- [ ] Авто отчиска кэша\n- [ ] Рефакторинг кода\n\n## Установка\nСкачать последний релиз с github: \n![releases image](img/releases.png)\nИли же командой через git (вместо !VERSION! указать последнюю версию из релизов):\n```bash\ngit clone --branch !VERSION! https://github.com/Keller18306/musicFromVK.git\n```\n\nСкачать необходимые модули:\n```bash\nnpm i\n```\n\nСкачать TypeScript Node:\n```bash\nnpm i -g ts-node\n```\n\n## Настройка\nНужно создать файл config.ts в корневой директории проекта с содержимым:\n```typescript\nimport { Config } from './config.type'\n\nexport const config: Config = {\n    api_id: 1234567, //API Id приложения MTProto\n    api_hash: '826dbdaa1540d406ae3090add1805794', //API Hash приложения MTProto\n    tg_token: '1234567890:3KojcGP79eGW44UffUtf8Zabt_9ui7pOY80', //Токен от телеграм бота\n    vk_token: '6be59d30e6b346f17c4ca695df004f228379b78c261b0468b55da6f6dbfff5468beffa5c1dae4c0009ffa', //Токен от аккаунта вк\n    uploadThreads: 3 //Сколько одновременно частей загружать на сервер телеграм\n}\n```\nПолучить данные для MTProto можно тут: https://my.telegram.org/\n\nПолучить токен для бота телеграм можно тут: https://t.me/BotFather\n\nПолучить токен от вк можно тут: https://oauth.vk.com/authorize?client_id=6121396\u0026scope=327710\u0026redirect_uri=https://oauth.vk.com/blank.html\u0026display=page\u0026response_type=token\u0026revoke=1\n\n## Запуск\nЗапустить бота можно следующей командой\n```bash\nts-node .\n```\n\nВо время первого запуска в консоли будет выведено сообщение о настройке. Вам необходимо скопировать данную команду и отправить боту, чтобы вы получили полные права.\n![setup cmd image](img/setup_cmd.png \"/setup 68dbd51c135a619782813169ad6710254d3a20595e21de00\")\n![setup cmd image](img/setup_tg.png \"/setup 68dbd51c135a619782813169ad6710254d3a20595e21de00\")\n\n\u003e Данная команда будет работать для всех пользователей, пока бот не будет перезагружен.\n\n## Описание кнопок\n![buttons](img/buttons_info.png)\n\n### Список музыки\n```\n1 - Страница назад\n2 - Обновить страницу\n3 - Текущий номер страницы\n4 - Получить все песни из страницы\n5 - Страница вперёд\n```\n### Аудиофайл\n```\n6 - Удалить из \"моей музыки\"\n7 - Добавить в \"мою музыку\"\n8 - Открыть похожую музыку\n9 - Отправить событие о прослушивании (вероятнее всего вк это использует для формирования рекомендаций)\n```\n\n## Доступные группы\n| Группа | Разрешения | Описание |\n|--------|------------|----------|\n| guest  |bot.base.commands|Группа выдаётся всем, кто пишет боту (для экономии места автоматически в файл не заносится)|\n| member |`всех групп выше` + bot.get.playlist, bot.search.music, bot.get.recommendations, bot.get.audio, bot.get.popular|Группа имеет доступ к прослушиванию музыки|\n| owner  |`всех групп выше` + bot.get.music, bot.add.to.music, bot.send.start.event, bot.delete.music, bot.get.page, bot.get.friends|Группа имеет доступ к редактировании музыки и различным взаимодейтсвием с аккаунтом|\n| admin  |`всех групп выше` + bot.eval, bot.debug, bot.add.admin, bot.exec.js, bot.set.group|Полный доступ ко всем командам|\n\n## Доступные команды\n\n|      ID     |   Команда | Минимальная группа  | Разрешение |    Описание    |\n|-------------|-----------|---------------------|------------|----------------|\n|start|/start|guest|bot.base.commands|Открыть клавиатуру|\n|getId|/id|guest|bot.base.commands|Получает id текущего аккаунта|\n|math|/math|guest|bot.base.commands|Посчитать пример|\n|ping|/ping|guest|bot.base.commands|Проверяет работоспособноть бота и задержки к серверам Telegram|\n|checkUpdate|/checkUpdate|guest|bot.base.commands|Проверяет наличие новой версии бота|\n|setup|/setup|guest|bot.base.commands|Первоначальная настройка прав администратора|\n|myPermissions|/myPermissions|guest|bot.base.commands|Узнать ваши текущие права|\n|getMyCmds|/help|guest|bot.base.commands|Узнать доступные вам команды|\n|myGroup|/myGroup|guest|bot.base.commands|Узнать вашу текущую группу|\n|getCmdPerms|/getCmdPerms|guest|bot.base.commands|Узнать все команды и разрешения к ним|\n|getGroup|/getGroup|guest|bot.base.commands|Узнать разрешения группы|\n|getGroups|/getGroups|guest|bot.base.commands|Узнать все группы|\n|getPerms|/getPerms|guest|bot.base.commands|Узнать все разрешения|\n|dailyPlaylist|/getDaily|member|bot.get.playlist|Получает дневной плейлист с аккаунта|\n|weekPlaylist|/getWeek|member|bot.get.playlist|Получает недельный плейлист с аккаунта|\n|newPlaylist|/getNew|member|bot.get.playlist|Получает плейлист с новинками с аккаунта|\n|getRecommendations|/getRecommendations|member|bot.get.recommendations|Получает рекомендации с аккаунта|\n|getPopular|/getPopular|member|bot.get.popular|Получает популярную музыку|\n|genresPopular|/genresPopular|member|bot.get.popular|Получает жанры популярной музыки|\n|searchMusic|/search|member|bot.search.music|Поиск музыки в вк|\n|getMusic|/getMusic|owner|bot.get.music|Получает всю музыку с аккаунта|\n|getFriends|/getFriends|owner|bot.get.friends|Возвращает список друзей (есть возможность слушать их музыку)|\n|setGroup|/setGroup|admin|bot.set.group|Установить группу человеку|\n|eval|/eval|admin|bot.eval|Выполнение js кода в боте|\n|execJs|/js|admin|bot.exec.js|Выполнение js кода|\n|removeKeyboard|/removeKeyboard|admin|bot.debug|Удаляет клавиатуру|\n|test|/test|admin|bot.debug|Тестовая команда|\n\n## Поддержка\nБаг? Проблема? Вопрос? - не бойтесь открывать issue по любому поводу!\n![issue](img/issue.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeller18306%2Fmusicfromvk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeller18306%2Fmusicfromvk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeller18306%2Fmusicfromvk/lists"}