Pull to refresh

Удобное скачивание музыки из vkontakte

Reading time3 min
Views20K
Внимание! Статья не претендует на научное соискательство. Опубликована исключительно в целях помочь тем, кто не хочет писать код сам. Если Вы не слушаете музыку вконтакте, не пользуетесь соц. сетями и у Вас аллергия на мой говнокод код написанный студентом, Вам будет не интересно.

Примерно год назад я написал скрипт для скачивания музыки из vk, причем в нормальном качестве (хотя бы > 250 кбит/c ). Он будет полезен для тех, кто хочет скачать свой плейлист вконтакте или просто для удобного выкачивания музыки пока не поздно. Под «удобным скачиванием», на тот момент, я понимал скачивание песен являющимися саундтреками к какому-либо сериалу или фильму, скачивание по артисту и скачивание по названию. Например вводим «OST Pulp Fiction» и получаем папку с песнями из кинофильма Криминальное чтиво.

Как появился скрипт
Я меломан и всю музыку стараюсь хранить на домашнем компьютере. Но однажды я оказался оторван от своей домашней медиатеки. Поиски способов быстро выкачать всю музыку, которую я обычно слушаю, а также докачивать новую, привели меня к написанию скрипта. Ни о каких онлайн сервисах речи не шло, т.к. я хотел слушать музыку и оффлайн, и на смартфоне. Скрипт писал исключительно для себя, в свете недавних событий решил поделиться.
Как использовать скрипт
Для работы скрипта нужен Python 2.7.
Архив со скриптом можно скачать здесь. Распаковываем, открываем файл vkMusicDwn.py и корректируем параметры в самом начале файла.
# Path to download folder
dpath = '/music/'

### This block uncommented if you want put email and
### password from keyboard
email = raw_input("Email: ")
password = getpass.getpass()

### This block for static email and password
###
#email = 'email'
#password = 'password'

bitrate = 230

dpath Папка куда будет скачиваться музыка.
email Ваш логин
password Ваш пароль
bitrate Минимальный битрейт
Если не хотите каждый раз вводить логин и пароль можно раскомментировать блок " ### This block for static email and password ", и ввести свой логин и пароль.
Не забудьте закомментировать блок "### This block uncommented if you want put email and". Авторизатор взят отсюда.
Запускаем скрипт.
user@user:$ python vkMusicDwn.py.


Как работает скрипт
Фильтрация песен.
  • Песня должна весить не больше 23 Мегабайт и битрейт должен быть выше 230. Если нет — песня попадает в список плохих песен
  • Из названия файла убираются все лишние слова и символы. Скрипт скачивает песни, и сохраняет их в виде «Artist — Title.mp3»
  • Для всех песен из плохого списка повторяется операция поиска


У скрипта есть 2 основных режима работы.
  • Скачивание плейлиста пользователя
  • Скачивание песен по введенной строке

В первом случае все понятно. После запуска и ввода логина\ пароля будет задан вопрос:
Download users playlist? ( yes/no ): 

Отвечаем 'yes' и скрипт будет пытаться выкачать всю музыку из вашего плейлиста.

Во втором случае Вы отвечаете 'no' и вводите что хотите найти, какое количество песен скачать, и какое смещение (offset) сделать относительно поисковой выдачи vkontakte. К примеру захотелось освоить группу Metallica.
 
What do want to find: Metallica
How many songs do want to download: 10
Put offset: 0

Скачиваем песни группы Metallica, 10 штук, смещение 0. Позже, если группа понравилась вводим те же параметры, но смещение ставим 10. В результате скрипт докачает следующие 10 песен из поисковой выдачи.

Позже пытался прикрутить какой-нибудь интерефейс, но к сожалению времени не хватает. Как говорят нет ничего более постоянного, чем временное.
Сслыка на github.com.
Буду рад любой конструктивной критике, особенно относительно кода.
Update Спасибо scorched за сообщения об ошибках. Исправил проблему с закачиванием своего плейлиста.
Tags:
Hubs:
-15
Comments10

Articles

Change theme settings