Скрипт, позволяющий импортировать плейлисты из Spotify, а также обычные треклисты в VK музыку.

Overview

vk-music-import

Программа для переноса плейлистов из Spotify и текстовых треклистов в VK Музыку.

Untitled Diagram drawio-3

Преимущества:

  • Позволяет быстро импортировать плейлисты из Spotify в VK Музыку
  • Импортирует даже неточные по названию треки
  • Имеет доступ только к аудиозаписям, данные никуда не "утекают"
  • Поддерживает большие плейлисты (более 1000 треков)
  • Позволяет импортировать также обычные текстовые списки треков в VK Музыку
  • Умеет обходить капчу

Как запустить? (для обычных пользователей)

Инструкция по использованию на Windows:

  • Скачайте и распакуйте архив (vk-music-import_win32.zip) в любую папку
  • Запустите исполняемый файл и следуйте инструкциям:

2022-04-08_12h22_59

Более подробная инструкция на DTF: Переносим плейлисты из Spotify в VK Музыку (подробное руководство).

Как запустить? (для продвинутых пользователей)

  1. Убедитесь, что у вас установлен Python 3.8 (или 3.9).
  2. Установите зависимости:
    pip install -r requirements.txt
    
  3. Запустите скрипт и следуйте инструкциям:
    python vk-music-import.py
    
  4. После переноса треков, скрипт сгенерирует отчет и выведет ссылку на плейлисты с импортированными треками.

Настройки

Режим импорта

По-умолчанию включен импорт треков из плейлиста Spotify, чтобы перейти в режим импорта из треклиста, в .env отключите режим Spotify: SPOTIFY_MODE="0". Теперь скрипт будет искать треки из файла tracklist.txt (его нужно создать самостоятельно в папке со скриптом), который должен содержать список треков, разделенных переносом, например:

Khalid - Better
Billie Eilish - i love you

Возможные проблемы и их решения

Обход капчи не работает на macOS на M1

Это происходит из-за проблем с установкой onnx-runtime.

  • Решение 1: запустите скрипт через Python x64 с помощью Rosetta.
  • Решение 2: отключить распознавание капчи и вводить ответы вручную. Для этого закомментируйте строчку импорта import onnxruntime as rt в vk-music-import.py и выключите распознавание капчи в файле .env: BYPASS_CAPTCHA="0".

Компиляция программы

Вы можете скомпилировать данную утилиту самостоятельно, в том числе для своей операционной системы (в инструкции пример для Windows).

  • Создайте виртуальное окружение и установите зависимости и Pyinstaller:
    python -m virtualenv venv
    venv\Scripts\activate
    pip install -r requirements.txt
    pip install pyinstaller
    
  • Запустите компиляцию:
    pyinstaller --onefile --icon=app.ico --add-binary="venv\Lib\site-packages\onnxruntime\capi\onnxruntime_providers_shared.dll;.\onnxruntime\capi" .\vk-music-import.py
    
  • Скопируйте в папку dist файл с моделями капчи (models).

Полезный материал

  • Айти заметки Сергея Струкова - телеграм-канал автора сервиса.
  • Spotya - сервис для переноса музыки из Spotify в Яндекс Музыку, некоторые метаданные о плейлистах я собираю с его API.
  • vkCaptchaBreaker - модель для решения капчи ВК взята из данного репозитория

Условия пользования

Автор не несет ответственности за любые действия, которые предпринимаете с данным ПО, вы делаете всё на свой страх и риск. Учитывайте, что данный метод импортирования музыки не является официальным, но банов за его использования пока не было.

Comments
  • [Проблема]

    [Проблема]

    Добрый день. Программа и правда переносит треки, однако почему то по два сразу. То есть каждый трек дублируется.

    Windows 11 Любой плейлист Готовый релиз V 0.3

    Технические данные (пожалуйста, заполните следующую информацию):

    • ОС [например, Windows 11]
    • Содержимое файла настроек (.env)
    • Ссылка на плейлист
    • Ссылка на профиль ВКонтакте
    • Запускали ли вы готовый релиз (или использовали Python)?
    • Версия программы [например, 0.1]

    Дополнительная информация Добавьте сюда дополнительные данные, касающийся проблемы.

    bug 
    opened by zargpg74 2
  • [Проблема] Добавляется по 2 трека в плейлист

    [Проблема] Добавляется по 2 трека в плейлист

    при добавление треков в плейлист треки добавляются 2 раза. В плейлисте спотифи 1300 в приложении показывается что треков 2600. Так же почему-то когда много треков в плейлисте создаётся ещё 1 плейлист после того как в первый добавляется ~900 треков

    Все эти баги в новой версии 0.3, в 0.2 всё нормально

    bug 
    opened by xtenshhi 2
  • [Проблема] Не возвращается список треков (Bad Request)

    [Проблема] Не возвращается список треков (Bad Request)

    Опишите проблему Ошибка 504 Gateway Time Out

    Скриншоты image Технические данные (пожалуйста, заполните следующую информацию):

    • Win 10

    • Содержимое файла настроек (.env) Поумолчанию

    • Запускал готовый релиз

    • Версия программы 0ю.2

    bug 
    opened by LevganSaxen 2
  • в виде кода не может войти по токену

    в виде кода не может войти по токену

    Опишите проблему код не может получить доступ к странице, падает из-за несовпадения ip, не совсем понятно как это возможно, учитывая, что получение токена и запуск проекта происходят на одной машине

    Как воспроизвести ошибку запуск через cmd, следую инструкциям

    • Windows 11
    • VK_TOKEN="токен" BYPASS_CAPTCHA="1" SPOTIFY_MODE="0" REVERSE="0" STRICT_SEARCH="1" ADD_TO_LIBRARY="1"
    • добавление из треклиста
    • vk.com/firs_iln
    • python
    • 3.0

    Дополнительная информация ERROR:root:[5] User authorization failed: access_token was given to another ip address. Traceback (most recent call last): File "D:\Загрузки\vk-music-import-0.3\vk-music-import-0.3\vk-music-import.py", line 140, in main user_info = vk.users.get()[0] File "C:\Users\firs_\AppData\Local\Programs\Python\Python38-32\lib\site-packages\vk_api\vk_api.py", line 737, in call return self._vk.method(self.method, kwargs) File "C:\Users\firs\AppData\Local\Programs\Python\Python38-32\lib\site-packages\vk_api\vk_api.py", line 697, in method raise error vk_api.exceptions.ApiError: [5] User authorization failed: access_token was given to another ip address.

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "D:\Загрузки\vk-music-import-0.3\vk-music-import-0.3\vk-music-import.py", line 364, in main() File "D:\Загрузки\vk-music-import-0.3\vk-music-import-0.3\vk-music-import.py", line 145, in main user_info = vk.users.get()[0] File "C:\Users\firs_\AppData\Local\Programs\Python\Python38-32\lib\site-packages\vk_api\vk_api.py", line 737, in call return self._vk.method(self.method, kwargs) File "C:\Users\firs\AppData\Local\Programs\Python\Python38-32\lib\site-packages\vk_api\vk_api.py", line 697, in method raise error vk_api.exceptions.ApiError: [5] User authorization failed: access_token was given to another ip address. Нажмите Enter, чтобы завершить работу программы...

    bug 
    opened by firs-iln 1
  • [v0.4] Добавить инструкции по переносу с других сервисов

    [v0.4] Добавить инструкции по переносу с других сервисов

    Добавить сервисы или описания:

    • [x] Яндекс Музыка (расширение, треклист)
    • [x] YouTube Музыка (https://yt.spotya.ru/)
    • [x] СберЗвук (?)
    • [x] Apple Music (https://www.idownloadblog.com/2020/10/30/import-export-playlist-apple-music-mac/ ?)
    • [x] Deezer, Amazon и прочие (TuneMyMusic, Soundiiz)
    • [x] Файлы (m3u, m3u8)
    enhancement 
    opened by mewforest 1
  • [Новая фича] Прогресс-бар

    [Новая фича] Прогресс-бар

    Когда треки переносятся из файла, приложуха пишет в stdout:

    INFO:root:Успешно добавил в мои аудиозаписи: "H.A.W.K, Anka Man, 50/50 Twin - U Otta Know"
    

    Было бы неплохо запилить прогресс-бар, или хотя бы, банально, текстовый счетчик, например:

    INFO:root:Успешно добавил в мои аудиозаписи: "H.A.W.K, Anka Man, 50/50 Twin - U Otta Know" (Прогресс: 212/1245)

    enhancement 
    opened by underwear 1
  • Возможность импортировать список в обратной последовательности

    Возможность импортировать список в обратной последовательности

    В спотифай лайкнутые треки появляются сверху и при переносе их ВК старые треки находятся вверху, а новые соответственно внизу.

    Предлагаю сделать в .env переменную которая настраивает в каком порядке импортировать.

    enhancement 
    opened by Vaskass 1
  • [Проблема] Не работает импорт треков из треклиста

    [Проблема] Не работает импорт треков из треклиста

    Опишите проблему

    Здравствуйте! Пытался сделать перенос из txt, в env поставил 0, но скрипт все равно просит ссылку на спотифай.

    Файл настроек

    VK_TOKEN="<...>"
    BYPASS_CAPTCHA="1"
    SPOTIFY_MODE="0"
    

    Дополнительная информация Ссылка на обращение

    bug 
    opened by mewforest 0
  • [v0.4] Отключить создание плейлиста при ADD_TO_LIBRARY=

    [v0.4] Отключить создание плейлиста при ADD_TO_LIBRARY="1" по умолчанию

    При env ADD_TO_LIBRARY="1", пишет и в плейлист, и в мои аудиозаписи

    INFO:root:Нашел похожий трек: "Everyday - Logic, Marshmello" → "Logic, Marshmello - Everyday"
    INFO:root:Добавляю "Logic, Marshmello - Everyday" (id: 456559211) в плейлист...
    INFO:root:Добавляю "Logic, Marshmello - Everyday" (id: 456559211) в мои аудиозаписи...
    INFO:root:Успешно добавил в мои аудиозаписи: "Logic, Marshmello - Everyday"
    INFO:root:Успешно добавил в плейлист: "Logic, Marshmello - Everyday"
    
    enhancement 
    opened by underwear 1
Releases(0.3)
  • 0.3(Jun 10, 2022)

    Инструкция по использованию на Windows:

    • Скачайте и распакуйте архив (vk-music-import-v0.3_win32.zip) в любую папку
    • Запустите исполняемый файл и следуйте инструкциям: 2022-05-08_00h27_25

    Что нового?

    • Поддержка треклистов из Яндекс Музыки, экспортированных через расширение (если строчка в треклисте без дефиса, скрипт проставляет его автоматически)
    • Данная версия включает исправление бага, обнаруженного в текущей версии (hotfix1)
    Source code(tar.gz)
    Source code(zip)
    vk-music-import-v0.3.hotfix1._win32.zip(28.37 MB)
  • 0.2(May 7, 2022)

    ⚠️ Данная версия программы устарела, используйте актуальную версию.


    Что нового?

    • Добавлен режим, который позволяет добавлять треки в мои аудиозаписи
    • Добавлен режим строгого поиска треков: больше никаких "левых" ремиксов после импорта 😎 (включается в настройках)
    • Теперь все плейлисты импортируются в обратном порядке, т.е. от новых треков к старым (это также можно изменить в настройках)
    • Исправлен баг с импортом музыки из треклиста
    • Настройки теперь находятся в файле config.env вместо .env (сделано для удобства пользователей macOS и Windows 11)
    • Также обновлены ссылки в подвале отчета
    Source code(tar.gz)
    Source code(zip)
    vk-music-import-v0.2_win32.zip(27.41 MB)
  • 0.1(Apr 8, 2022)

Owner
Mew Forest
Mew Forest
Powerful Telegram userbot to turn your PROFILE PICTURE & LAST NAME into a real time clock & to change your BIO automatically.

DATE_TIME_USERBOT-TeLeTiPs Powerful Telegram userbot to turn your PROFILE PICTURE & LAST NAME into a real time clock & to change your BIO automaticall

53 Jan 05, 2023
Terminal Bot which will Execute your Commands From telegram bot!

Terminal-Bot see this bot alive: https://t.me/HerokuTerminal_Bot With this bot you can execute system commands on your server. how to config? clone or

Moshe 41 Dec 09, 2022
A Telegram Bot for adding Footer caption beside main caption of Telegram Channel Messages.

Footer-Bot A Telegram Bot for adding Footer caption beside main caption of Telegram Channel Messages. Best for Telegram Movie Channels. Made by @AbirH

Abir Hasan 35 Jan 02, 2023
A Python module for communicating with the Twilio API and generating TwiML.

twilio-python The default branch name for this repository has been changed to main as of 07/27/2020. Documentation The documentation for the Twilio AP

Twilio 1.6k Jan 05, 2023
This repository will be a draft of a package about the latest total marine fish production in Indonesia. Data will be collected from PIPP (Pusat Informasi Pelabuhan Perikanan).

indomarinefish This package will give us information about the latest total marine fish production in Indonesia. The Name of the fish is written in In

1 Oct 13, 2021
Trading through Binance's API using Python & sqlite

pycrypt Automate trading crypto using Python to pull data from Binance's API and analyse trends. May or may not consistently lose money but oh well it

Maxim 4 Sep 02, 2022
Python library for the DeepL language translation API.

The DeepL API is a language translation API that allows other computer programs to send texts and documents to DeepL's servers and receive high-quality translations. This opens a whole universe of op

DeepL 535 Jan 04, 2023
Powerful Telegram Members Scraping and Adding Toolkit

🔥 Genisys V2.1 Powerful Telegram Members Scraping and Adding Toolkit 🔻 Features 🔺 ADDS IN BULK[by user id, not by username] Scrapes and adds to pub

The Cryptonian 16 Mar 01, 2022
Manage AWS Secrets the easy way

AWStanding Easily load variables from AWS Parameter store into environment variables. Why to AWStanding? Because it handles AWS pagination so the amou

Juan Ignacio Sánchez Sampayo 13 Dec 30, 2022
Calendars for various securities exchanges.

IMPORTANT NOTE This package is currently unmaintained as the sponsor, quantopian, is going through corporate changes. As such there is a fork of this

Quantopian, Inc. 545 Jan 07, 2023
Dns-Client-Server - Dns Client Server For Python

Dns-client-server DNS Server: supporting all types of queries and replies. Shoul

Nishant Badgujar 1 Feb 15, 2022
Easily report Instagram pages and close the page

Program Features - 📌 Delete target post on Instagram. - 📌 Delete Media Target post on Instagram - 📌 Complete deletion of the target account on Inst

hack4lx 11 Nov 25, 2022
Music bot for playing music on telegram voice chat group.

Somali X Music 🎵 Music bot for playing music on telegram voice chat group. Requirements FFmpeg NodeJS nodesource.com Python 3.8+ or Higher PyTgCalls

Abdisamad Omar Mohamed 4 Dec 01, 2021
Yes, it's true :orange_heart: This repository has 346 stars.

Yes, it's true! Inspired by a similar repository from @RealPeha, but implemented using a webhook on AWS Lambda and API Gateway, so it's serverless! If

512 Jan 01, 2023
Telegram bot with various Sticker Tools

Sticker Tools Bot @Sticker_Tools_Bot A star ⭐ from you means a lot to us! Telegram bot with various Sticker Tools Usage Deploy to Heroku Tap on above

Stark Bots 20 Dec 08, 2022
Threat Intel Platform for T-POTs

T-Pot 20.06 runs on Debian (Stable), is based heavily on docker, docker-compose

Deutsche Telekom Security GmbH 4.3k Jan 07, 2023
Stack overflow search API

Stack overflow search API

Vikash Karodiya 1 Nov 15, 2021
Ridogram is an advanced multi-featured Telegram UserBot.

Ridogram Ridogram is an advanced multi-featured Telegram UserBot. String Session Collect String Session by running python3 stringsession.py locally or

Md. Ridwanul Islam Muntakim 134 Dec 29, 2022
A quick-and-dirty script to scrape the daily menu of Leipzig University Mensa and send it to a telegram channel.

Feed me Mensa UL A quick-and-dirty script to scrape the daily menu of Leipzig University Mensa and send it to a telegram channel. For food and cat lov

3 Apr 08, 2022
A discord token nuker With loads of options that will screw an account up real bad

A discord token nuker With loads of options that will screw an account up real bad, also has inbuilt massreport, GroupChat Spammer and Token/Password/Creditcard grabber and so much more!

XPTGR 0 Aug 07, 2022