Skip to content

Импорт плейлистов в VK Музыку из Spotify и других сервисов

License

Notifications You must be signed in to change notification settings

mewforest/vk-music-import

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vk-music-import

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

Untitled Diagram drawio-3

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

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

Скриншоты

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

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

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

2022-04-08_12h22_59

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

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

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

Перенос плейлистов из Apple Music

  1. В приложении Музыка на Mac выберите плейлист в боковом меню, затем выберите «Файл» > «Медиатека» > «Экспортировать плейлист». Выберите формат «Простой Текст».
  2. В файле настроек (config.env, лежит в папке с программой) с помощью блокнота выключите режим spotify: SPOTIFY_MODE="0"
  3. Аналогично предыдущему шагу включите режим Apple Music: APPLE_MODE="1"
  4. Запустите скрипт, поместив экспортированный файл в папку со скриптом (ВАЖНО: файл должен называться tracklist.csv):
python vk-music-import.py

Важно: данный режим экспериментальный и может не поддерживаться полностью.

Как перенести музыку из других сервисов?

Чтобы перенести музыку из сторонних сервисов (YouTube, Apple Music, Яндекс Музыка и т.д.), вам необходимо будет экспортировать оттуда треклист (текстовой файл с названиями треков). Это можно сделать с помощью стороннего сервиса TuneMyMusic:

  1. Перейдите на сайт TuneMyMusic и нажмите кнопку «Давайте приступим».
  2. Выберите сервис, из которого вы хотите перенести музыку, и авторизуйтесь в нем.
  3. Выберите плейлист для переноса, нажав кнопку «Загрузить из вашей учетной записи».
  4. На странице «Выберите целевую платформу» нажмите кнопку «Файл» и скачайте его в формате .txt.
  5. Нажмите «Начать перенос музыки».
  6. Сохраните файл на свой компьютер, а затем переместите его в папку с данной программой и переименуйте в tracklist.txt.
  7. В файле настроек (config.env, лежит в папке с программой) с помощью блокнота выключите режим spotify: SPOTIFY_MODE="0"
  8. Готово, запускайте скрипт!

Инструкция частично заимствована отсюда.

Альтернативы

Как создать плейлист из ссылок на треки во Вконтакте

На любой трек во ВКонтакте можно получить прямую ссылку, если вы создадите список таких ссылок, то их также можно будет добавить в плейлист с помощью данной утилиты. Это может быть полезно, если вы создаете плейлисты в стороннем приложении для прослушивания музыки, например, в AIMP с использованием плагина VK Plugin.

Чтобы перейти в режим импорта из списка ссылок, в config.env отключите режим Spotify: SPOTIFY_MODE="0" и включите режим VK_LINKS_MODE="1". Теперь скрипт будет добавлять треки по ссылкам из файла tracklist.txt минуя поиск. Вот как должен выглядеть этот список:

https://vk.com/audio570484580_456249918_30a6c863d7cb56d834
https://vk.com/audio570484580_456245588_3c170a3340106a374a
https://vk.com/audio570484580_456245614_4bb21fb36173e3c61b
https://vk.com/audio570484580_456254608_7784e1bddd07c3289f

Как получить список ссылок на музыку в AIMP-е

  1. Установить VK Plugin в AIMP
  2. Правой кнопкой мыши по списку треков "Экспорт треклиста"
  3. Появится окошко с настройками экспорта, в поле "Форматная строка" написать %Link и кликнуть "ОК"
  4. Готово! Треклист можно сохранять как tracklist.txt, предварительно удалив из него лишние строки в самом начале файла.

Настройки

Описание настроек

Параметр Описание Значение по умолчанию
VK_TOKEN Токен для доступа к VK API** ""
BYPASS_CAPTCHA Включить обход капчи автоматически (если отключить, будет предложено вводить капчу каждый раз вручную) 1
SPOTIFY_MODE Включить режим импорта из Spotify 1
APPLE_MODE Включить режим импорта из Apple Music 0
VK_LINKS_MODE Включить режим импорта из списка ссылок на треки во Вконтакте (ссылки должны быть в файле tracklist.txt) 0
REVERSE Добавлять треки в обратном порядке (от новых к старым) 1
STRICT_SEARCH Искать только точные совпадения по исполнителю 0
ADD_TO_LIBRARY Добавлять треки в мои аудиозаписи 0
ADD_TO_GROUP_ID Добавлять треки в сообщество с указанным ID. Если пусто, то опция выключена. ``
TIMEOUT_AFTER_ERROR Задержка после ошибки (в секундах)* 10
TIMEOUT_AFTER_CAPTCHA Задержка после капчи (в секундах)* 30
TIMEOUT_AFTER_SUCCESS Задержка после успешного импорта (в секундах)* 1

*Только для beta-версии. ** Ссылка для получения токена здесь.

Добавление в мои аудиозаписи

По-умолчанию треки переносятся в плейлист без добавления в раздел "мои аудиозаписи". Чтобы включить добавление музыки в свою медиатеку ВКонтакте, в config.env включите соответственный пункт: ADD_TO_LIBRARY="1".

Используйте с осторожностью: ВКонтакте не проверяет трек на наличие в аудиозаписях, так что при импорте возможны дубликаты.

Импорт музыки из треклиста

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

Khalid - Better
Billie Eilish - i love you

Если дефисы не проставлены, скрипт проставит их автоматически после первого слова.

Треки в обратном порядке

По-умолчанию все плейлисты добавляются в обратном порядке (от новых к старым). Чтобы это отключить, в config.env отключите режим обратного порядка: REVERSE="0".

Строгий поиск

По-умолчанию скрипт ищет неточные совпадения для треков и также их переносит, побочный эффект этого: в вашу медиатеку могут попасть ремиксы и bassboosted-версии. Чтобы разрешить перенос только точных совпадений по исполнителю, в config.env включите строгий режим: STRICT_SEARCH="1".

Добавление в сообщество (группу)

Чтобы добавить треки в сообщество (группу), вы должны быть её администратором. В config.env добавьте строчку: ADD_TO_GROUP_ID="123456789". Вместо123456789 укажите ID сообщества (как узнать id группы в VK), в которое вы хотите добавить треки.

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

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

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

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

Не работает обход капчи

  • Увеличьте значение CAPTCHA_TIMEOUT в config.env (по-умолчанию 30 секунд)*.
  • Отключите автоматический обход капчи в config.env: BYPASS_CAPTCHA="0" и вводите ответы вручную.
  • Повторите попытку через некоторое время, возможно ВКонтакте временно заблокировал ваш аккаунт.

Слетела конфигурация по умолчанию

Все настройки хранятся в файле config.env, если он был удален или повредился, то его можно восстановить вручную, вставив настройки по умолчанию из файла в репозитории.

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

Вы можете скомпилировать данную утилиту самостоятельно, в том числе для своей операционной системы (в инструкции пример для 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" --windowed --hidden-import=PySide2  --hidden-import=tkinter .\vk-music-import.py
  • Скопируйте в папку dist файл с моделями капчи (models) и файл конфигурации (config.env):
    cp -r .\models\ .\dist\models
    cp .\config.env .\dist

Поддержка пользователей

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

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

Альтернативные решения

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

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