Скрипт, позволяющий импортировать плейлисты из 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
An interactive and multi-function Telegram bot, made especially for Telegram groups.

PyKorone An interaction and fun bot for Telegram groups, having some useful and other useless commands. Created as an experiment and learning bot but

Amano Team 17 Nov 12, 2022
Astro Bot With Golang

Astro-Bot Features: Astronomy Picture of the day Horoscope People In Space How we built it Our team was broken, one person didn't do anything the othe

Vaarun Sinha 1 Nov 21, 2021
A website application running in Google app engine, deliver rss news to your kindle. generate mobi using python, multilanguages supported.

Readme of english version refers to Readme_EN.md 简介 这是一个运行在Google App Engine(GAE)上的Kindle个人推送服务应用,生成排版精美的杂志模式mobi/epub格式自动每天推送至您的Kindle或其他邮箱。 此应用目前的主要

2.6k Jan 06, 2023
allow windows programs to call dssp/mkdssp command from wsl; rework biopython on windows (PDB -> dssp -> fasta)

dssp-wsl Converting PDB (Protein Data Bank) file format to DSSP file format is required for generating datasets of peptides and their secondary struct

Taine Zhao 1 Feb 23, 2022
This software's intent is to automate all activities related to manage Axie Infinity Scholars. It is specially aimed to mangers with large scholar roasters.

Axie Scholars Utilities This software's intent is to automate all activities related to manage Scholars. It is specially aimed to mangers with large s

Ferran Marin 153 Nov 16, 2022
The Python client library for the Tuneup Technology App.

Tuneup Technology App Python Client Library The Python client library for the Tuneup Technology App. This library allows you to interact with the cust

Tuneup Technology 0 Jun 29, 2022
Skyscanner Python SDK

Skyscanner Python SDK Important As of May 1st, 2020, the project is deprecated and no longer maintained. The latest update in v1.1.5 includes changing

Skyscanner 118 Sep 23, 2022
An unofficial wrapper for Engineer Man's Piston API

Pistonpy Pistonpy is an API wrapper for the Piston code execution engine by Engineer Man. Key Features Simple modern and efficient Pythonic API using

AalbatrossGuy 4 Jan 03, 2022
hydrotoolbox is a Python script for hydrologic calculations and analysis or by function calls within Python.

hydrotoolbox is a Python script for hydrologic calculations and analysis or by function calls within Python.

Tim Cera 4 Aug 20, 2022
Discord.py(disnake) selfbot

Zzee selfbot Discord.py selfbot Version: 1.0 ATTENTION! we are not responsible for your discord account! this program violates the ToS discord rules!

1 Jan 10, 2022
Want to play What Would Rather on your Server? Invite the bot now! 😏

What is this Bot? 👀 What You Would Rather? is a Guessing game where you guess one thing. Long Description short Take this example: You typed r!rather

FSP Gang s' YT 3 Oct 18, 2021
Opensea-upload-with-recaptcha-solution - Updated opensea uploading solution with recaptcha pass

opensea-upload-with-recaptcha-solution updated opensea uploading solution with r

byeonggeon sim 25 Nov 15, 2022
A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

A . S . M . RADWAN 2 Apr 03, 2022
Balanced API library in python.

Balanced Online Marketplace Payments v1.x requires Balanced API 1.1. Use v0.x for Balanced API 1.0. Installation pip install balanced Usage View Bala

Balanced 70 Oct 04, 2022
This is a free python bot program that crosses you to farm with auto click in space crypto NFT game, having fun :) Creator: Marlon Zanardi

🚀 Space Crypto auto click bot ready-to-use 🚀 This is a free python bot program that crosses you to farm with auto click in space crypto NFT game, ha

170 Dec 20, 2022
Python module and command line script client for http://urbandictionary.com

py-urbandict py-urbandict is a client for urbandictionary.com. Project page on github: https://github.com/novel/py-urbandict PyPI: https://pypi.org/pr

Roman Bogorodskiy 32 Oct 01, 2022
GET-ACQ is a python tool used to gather all companies acquired by a given company domain name.

get-acq 🏢 GET-ACQ is a python tool used to gather all companies acquired by a given company domain name. It is done by calling SecurityTrails API. Us

Milan 7 Dec 19, 2022
Download nitro generator that generates free nitro code that you can use for Discord

Download nitro generator that generates free nitro code that you can use for Discord, run it and wait for free nitro to come

Umut Bayraktar 154 Jan 05, 2023
Bitcoin-chance-wheel - Try your luck at getting bitcoins

Program Features - ✍️ Why did we name this tool the Lucky Wheel? - ✍️ This tool

hack4lx 20 Dec 22, 2022
A multipurpose, semi-modular Discord bot written in Python with the new discord.py module.

Discord.py Reaction Bot MIRAI KURIYAMA A multipurpose, semi-modular Discord bot written in Python with the new discord.py module. Installing dependenc

1 Dec 02, 2021