Скрипт, позволяющий импортировать плейлисты из 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
A Telegram Bot That Can Find Lyrics Of Song

Lyrics-Search-Bot A Telegram Bot That Can Find Lyrics Of Song A Simple Telegram Bot That Can Extract Lyrics Of Any Songs Deploy Commands start - To St

Muhammed Fazin 11 Oct 21, 2022
Basic Discord python bot

#How to Create a Discord Bot Account In order to work with the Python library and the Discord API, we must first create a Discord Bot account. Here ar

Tustus 1 Oct 13, 2021
A modular Telegram Python bot running on python3 with a sqlalchemy database.

Nao Tomori Robot Found Me On Telegram As Nao Tomori 🌼 A modular Telegram Python bot running on python3 with a sqlalchemy database. How to setup/deplo

Stinkyproject 1 Nov 24, 2021
A fully decentralized protocol for private transactions FAST snipe BUY token on LUANCH after add LIQUIDITY

TORNADO CASH Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX) ⭐️ A fully decentralized protocol for private and safe transactions ⭐️ AUTO DO

Crypto Trader 2 Jan 06, 2022
GTK3-based panel for sway window manager

nwg-panel I have been using sway since 2019 and find it the most comfortable working environment, but... Have you ever missed all the graphical bells

Piotr Miller 290 Jan 07, 2023
Telegram vc - A bot that can play music on telegram group's voice call

Telegram Voice Chat Bot A bot that can play music on telegram group's voice call

1 Jan 02, 2022
Public Mirror of Team 15's Code and Reports for RBE 3002 B21

RBE3002 Team 15 Lab Repository Team 15's Repository for all code written for RBE 3002 using the Robotis TurtleBot3 Written By Matthew Haahr, Leo Morri

Matthew Haahr 3 Mar 21, 2022
Track player's stats, find out when they're online and grinding!

Hypixel Stats Tracker Track player's stats, find out when they're online and playing games! INFO Showcase Server: https://discord.gg/yY5qQHPar6 Suppor

4 Dec 18, 2022
SC4.0 - BEST EXPERIENCE · HEX EDITOR · Discord Nuker · Plugin Adder · Cheat Engine

smilecreator4 This site is for people who want to hack or want to learn it! Furthermore, this program does not work without turning off Antivirus or W

1 Jan 04, 2022
This is a very simple botnet with a CnC server, made by me. Feel free to change anything

This is a very simple botnet with a CnC server, made by me. Feel free to change anything

8 Nov 12, 2022
python3.5+ hubspot client based on hapipy, but modified to use the newer endpoints and non-legacy python

A python wrapper around HubSpot's APIs, for python 3.5+. Built initially around hapipy, but heavily modified. Check out the documentation here! (thank

Jacobi Petrucciani 140 Dec 21, 2022
Select random winners for a Twitter giveaway

twitter_picker Select random winners for a Twitter giveaway Once the Twitter giveaway (or airdrop) is closed, assign a number to each participant. The

Michael Rawner 1 Dec 11, 2021
AWS EC2 S3 Automated With python

AWS_EC2_S3_Automated Description This programme is a Python3 script that utilizes Boto3 to automate the process of creating an AWS EC2 instance with a

niall_crowe 2 Nov 16, 2021
A Python library for PagerDuty.

Pygerduty Python Library for PagerDuty's REST API and Events API. This library was originally written to support v1 and is currently being updated to

Dropbox 164 Dec 20, 2022
“ HOLA HUMANS 👋 I'M DAISYX 2.0 ❤️ „ LATEST VERSION OF DAISYX.. Source Code of @Daisyxbot

❤️ DaisyX 2.0 ❤️ A Powerful, Smart And Simple Group Manager ... Written with AioGram , Pyrogram and Telethon... ⭐️ Thanks to everyone who starred Dais

TeamDaisyX 153 Dec 06, 2022
Telegram Userbot built with Pyrogram

Pyrogram Userbot A Telegram Userbot based on Pyrogram This repository contains the source code of a Telegram Userbot and the instructions for running

Athfan Khaleel 113 Jan 03, 2023
MusicBot is the original Discord music bot written for Python 3.5+, using the discord.py library

The original MusicBot for Discord (formerly SexualRhinoceros/MusicBot)

Just Some Bots 2.9k Jan 02, 2023
Catinthebox - Awesome bot for Mastodon

Cat In The Box :3 Description Awesome bot for Mastodon Requirements python pip g

satanist 0 Jan 19, 2022
Holly ♥️ is usefull group management bot in telegram 🎋

Holly ♥️ is usefull group management bot in telegram 🎋

Kasun bandara 1 Dec 03, 2021
Easy Discord Webhook Token Grabber!

Easy Discord Webhook Token Grabber!

†† 27 Jun 01, 2022