Скрипт, позволяющий импортировать плейлисты из 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
Template to create a telegram bot in python

Template for Telegram Bot Template to create a telegram bot in python. How to Run Set your telegram bot token as environment variable TELEGRAM_BOT_TOK

PyTopia 12 Aug 14, 2022
unofficial source of the discord bot, “haunting.” created by: vorqz, vert, & Veltz

hauntingSRC unofficial source of the discord bot, “haunting.” created by: vorqz, vert, & Veltz reasoning: creators skidded the most of this bot and do

Vast 11 Nov 04, 2022
Repositório para meu Discord Bot pessoal

BassetinhoBot Escrevi o código usando o Python 3.8.3 e até agora não tive problemas rodando nas versões mais recentes. Repositório para o Discord Bot

Vinícius Bassete 1 Jan 04, 2022
A Python interface module to the SAS System. It works with Linux, Windows, and mainframe SAS. It supports the sas_kernel project (a Jupyter Notebook kernel for SAS) or can be used on its own.

A Python interface to MVA SAS Overview This module creates a bridge between Python and SAS 9.4. This module enables a Python developer, familiar with

SAS Software 319 Dec 19, 2022
Mikasa is a 100% Spanish bot, a multifunctional bot, Mikasa is in beta.

Mikasa Miaksa, It is a multi-functional discord bot that is currently in development, this is not complete, there are still many things to fix and imp

Made in 2 Oct 05, 2021
NiceHash Python Library and Command Line Rest API

NiceHash Python Library and Command Line Rest API Requirements / Modules pip install requests Required data and where to get it Following data is nee

Ashlin Darius Govindasamy 2 Jan 02, 2022
• Create Your Own YouTube Info Api.

youtube_data_api • Create Your Own YouTube Info Api. Deploy How to Use https://{ Heroku App Name }.herokuapp.com/api?link={YouTube link} In local Host

lokaman chendekar 12 Oct 02, 2022
A Python script to backup all repos (public or private) of a user.

GithubBackupAllRepos A Python script to backup all repos (public or private) of a user. Features Clone public and private repos Load specified SSH key

Podalirius 15 Jan 03, 2023
阿里云盘上传脚本

阿里云盘上传脚本 Author:李小恩 Github:https://github.com/Hidove/aliyundrive-uploader 如有侵权,请联系我删除 禁止用于非法用途,违者后果自负 环境要求 python3 使用方法 安装 git clone https://github.co

Hidove 301 Jan 01, 2023
Quack-SMS-BOMBER - Quack Toolkit By IkigaiHack

Quack Toolkit By IkigaiHack About Quack Toolkit Quack Toolkit is a set of tools

Marcel 2 Aug 19, 2022
Official Python client for the MonkeyLearn API. Build and consume machine learning models for language processing from your Python apps.

MonkeyLearn API for Python Official Python client for the MonkeyLearn API. Build and run machine learning models for language processing from your Pyt

MonkeyLearn 157 Nov 22, 2022
If you only have hash, you can still operate exchange

PTH Exchange If you only have hash, you can still operate exchange This project module is the same as my other project Exchange_SSRF, This project use

Jumbo 37 Dec 26, 2022
A Discord bot made by QwertyIsCoding

QwertyBot QwertyBot A Discord bot made by QwertyIsCoding Explore the docs » View Demo . Report Bug . Request Feature About The Project This Discord bo

4 Oct 08, 2022
The best Discord bot, created for r/Jailbreak

Bloo Setup instructions These instructions assume you are on macOS or Linux. Windows users, good luck. With Docker (recommended!) You will need the fo

GIR 33 Dec 16, 2022
Console BeautifulDiscord theme manager

BeautifulDiscord theme manager Console script for downloading & managing Discord .css themes via BeautifulDiscord. Setup Simply run # Linux/MacOS pip3

1 Dec 15, 2022
Ethereum Gas Fee for the MacBook Pro touchbar (using BetterTouchTool)

Gasbar Ethereum Gas Fee for the MacBook Pro touchbar (using BetterTouchTool) Worried about Ethereum gas fees? Me too. I'd like to keep an eye on them

TSS 51 Nov 14, 2022
Visual Weather api. Returns beautiful pictures with the current weather.

VWapi Visual Weather api. Returns beautiful pictures with the current weather. Installation: sudo apt update -y && sudo apt upgrade -y sudo apt instal

Hotaru 33 Nov 13, 2022
EduuRobot Telegram bot source code.

EduuRobot A multipurpose Telegram Bot made with Pyrogram and asynchronous programming. Requirements Python 3.6+ An Unix-like operating system (Running

Amano Team 119 Dec 23, 2022
A (probably) working Kik name checker

KikNameChecker !THIS ONLY CHECKS WS2.KIK.COM ENDPOINT! \ Will add user inputted endpoints thing \ A (probably) working Kik name checker Started as a s

insert edgy and cool name 1 Dec 17, 2022
Discord Mafia Game Bot using nextcord

Mafia-Bot Discord Mafia Game Bot using nextcord Features Mafia Game Game Replays Installation Run the following command to install required modules: p

Nian 6 Nov 19, 2022