LINUX.ORG.RU

vksearch - поиск и загрузка музыки из CLI

 


6

1

по просьбам трудящихся :)

/* БАГРЕПОРТЫ И ФИЧРЕКВЕСТЫ ПРИВЕТСТВУЮТСЯ! */

многие пользователи ЛОРа пользовались моей поделкой для поиска/прослушивания музыки из ВК прямо из CLI. так вот: на днях вк видимо отключил своё старое API и скрипт перестал работать :(

пришлось переписать скрипт на новый ляд на новую версию API (v3.99), а заодно почистить немного код и выпилить скачивание альбомов/дискографий в отдельный скрипт

changelog:

[+] Полная поддержка Cygwin
[+] Используем VKApi v3.99
[*] Теперь скрипт загрузки дискографий и альбомов идёт отдельно

[+] Добавлен цветной вывод. Отключается переменной cfg_color_output

[*] Исправления для поиска плейлиста по ID пользователя

[+] Добавлена функция "Рекомендации" из ВК. 
Использование: vksearch --get-recommends <ID>

[+] Добавлена функция "Предложения". Можно ввести имя исполнителя/название трека, чтобы получить рекомендуемые композиции.
(в отличие от "get-recommends", используется last.fm вместо вк)
Использование; vksearch --suggest Within Temptation
Также возможно получение рекомендаций по вашему плейлисту ВК.
Использование: vksearch --suggest --user-playlist <ID>

[+] --user-playlist теперь принимает несколько ID
[+] поддержка дозагрузки/уже загруженные песни пропускаются.
[*] исправлена загрузка песен со спецсимволами типа * ? < > '   " и пр.

[+] теперь  для --user-playlist по-умолчанию берутся все треки, но нужное количество по-прежнему можно задать через --count

[*] исправлена загрузка файлов с омг длинными именами, типа:
"Краски - ... а девочка танцует, девочка смеется.. она тебя забудет, и больше не вернется... а девочка танцует КОРОЛЕВА НОЧИ... она тебя не любит, она тебя не хочет..... "
Ограничение на имя файла составляет 70 символов.

[+] добавлена работа с offset. Теперь количество песен в запросе на поиск не ограничено (раньше было ограничение: 300)

Релиз.

для тех, кто не знаком с скриптом:
VKSearch 1.0: Поиск, прослушивание и закачка музыки с сайта VKontakte.ru!
Для работы скрипта не требуется авторизация ВКонтакте. by snoopcatt, © 2010-2013. Лицензировано под GNU GPL v2.
* Использование: vksearch [опции] запрос
        --help: показать это сообщение и закрыть vksearch

        --user-playlist: использовать плейлист пользователя(ей) по ID
        --search: использовать поиск по всей коллекции ВК
        --get-recommends: рекомендации пользователя по ID (используется ВК)
        --suggest: рекомендации пользователя по ID или запросу (используетcя LastFM)

        --play: проиграть найденный список треков
        --get: скачать найденный список треков
        --play-one: проиграть один из найденных треков
        --get-one: скачать один трек
        --make-playlist: создать плейлист

        --count=N: искать N треков
        --save-to=PATH: сохранять плейлист и треки в указанный PATH
        --write-tags: записывать id3 теги в скачанные треки
        --get-lyrics: скачать текст песни
        --silent: тихий режим


ссылка на гитхаб

Перемещено tazhate из talks

★★★★★

Последнее исправление: snoopcat (всего исправлений: 7)

Ответ на: комментарий от tazhate

докачивать не стянувшиеся треки из другого источника

Если вы там не ошиблись с комментарием, на который отвечаете, то всё стянулось более-менее нормально (399 из 401) - но всё стянулось «как есть», а значит файлы могут содержать символы, которые ntfs не переварит. Я предложил добавить ключ, что бы скрипт смог определённые символы заменить хотя бы подчёркиванием.

sh4r4t4n
()
Ответ на: комментарий от snoopcat

список тяжелых для понимания венды символов в студию.

\\:*?"<>|
sh4r4t4n
()
Ответ на: комментарий от snoopcat

А так же стоит сделать проверку на пробелы в начале файла.

sh4r4t4n
()
Ответ на: комментарий от sh4r4t4n

VKSearch 0.9-rc2

0.9-rc2:
 [+] --user-playlist теперь принимает несколько ID
 [+] поддержка дозагрузки/уже загруженные песни пропускаются.
 [*] исправлена загрузка песен со спецсимволами типа * ? < > '   " и пр.
snoopcat ★★★★★
() автор топика
Ответ на: комментарий от sh4r4t4n
[+] теперь  для --user-playlist по-умолчанию берутся все треки, но нужное количество по-прежнему можно задать через --count
snoopcat ★★★★★
() автор топика
Последнее исправление: snoopcat (всего исправлений: 1)

Релиз.

[*] исправлена загрузка файлов с омг длинными именами, типа:
"Краски - ... а девочка танцует, девочка смеется.. она тебя забудет, и больше не вернется... а девочка танцует КОРОЛЕВА НОЧИ... она тебя не любит, она тебя не хочет..... "
Ограничение на имя файла составляет 70 символов.

[+] добавлена работа с offset. Теперь количество песен в запросе на поиск не ограничено (раньше было ограничение: 300)
snoopcat ★★★★★
() автор топика
Последнее исправление: snoopcat (всего исправлений: 1)
Ответ на: Релиз. от snoopcat

1.1

[+] Несколько улучшений в suggest-режиме. Поддержка --play --suggest или --get --suggest.
[+] Новая опция --suggest-count=*. Читайте --help
snoopcat ★★★★★
() автор топика
Ответ на: Релиз. от snoopcat

Да дружок, тоже граблю с вконтакта самописной поделкой. Так вот, тебя ждёт ещё много открытий :3

anonymous
()
4 сентября 2013 г.

Добавь возможность скачивания с групп.

Kamikadze
()
5 ноября 2013 г.

Перестало работать, как я понял юзер для этого токиена деактивирован. Есть ли у кого еще токиен?

RCV ★★★★
()

Вопрос: этот скрипт не нуждается во фконтактеговом аккаунте? (что-то не видать ключей для указания файла с фконтактеговыми печеньками)

Anon
()
Ответ на: комментарий от Anon

И рыбку съесть, и всё остальное тебе.

anonymous
()
Ответ на: комментарий от Anon

Смотри в строчки в скрипте


# для получения нового токена пройдите по ссылке:
# https://oauth.vk.com/authorize?client_id=3723065&scope=audio,offline&redirect_uri=http://oauth.vk.com/blank.html&display=wap&response_type=token


vkapi_token='3a582f82cd975ace6015cd56e3e6eb3fff57961dccec60850a6272915f547132d616ae4ea0330a19725b9'


RCV ★★★★
()

Годнота, спасибо!

Сделай так что-бы если директория указанная в --save-to= создавалась если её нет.

Dron ★★★★★
()
17 декабря 2013 г.

Ну и говно. В светлом терминале текста не видно.

Говнокаверы/ремиксы/сео не фильтрует, по альбомам не группирует. Если название трека совпадает с названием альбома — выдаст кучу левых результатов.

Сравни результаты со своим поделием: http://rghost.ru/51030512

anonymous
()
Ответ на: комментарий от anonymous

17

2008 crystal castles ['CD', 'Album'] 106 untrust us bad crystal castles|untrust us remix x x x|0.88|214|http://cs6135.vk.me/u136574881/audios/819e41768e28.mp3?extra=wg6b5nelDyg8heHy... crystal castles|untrust us piano cover|0.88|174|http://cs6185.vk.me/u69164115/audios/32ecab7fa63d.mp3?extra=695tOFu-ot_eZHv7z... crystal castles|untrust us shvrz remix|0.88|169|http://cs5499.vk.me/u218664/audios/83aae38ba1c6.mp3?extra=C1Wts4d431B_0mAPIRm... crystal castles|untrust us vs youthclub|0.87|228|http://cs6118.vk.me/u29728186/audios/f0a1732b8e25.mp3?extra=8PLIDHgxtv4wZYGZW... crystal castles|untrust us butyreux remix|

...

Это шо?

anonymous
()
Ответ на: комментарий от anonymous

В API про «говнокаверы/ремиксы/сео» и альбомы ничего нет:

http://vk.com/pages?oid=-1&p=audio.search

Возвращает количество аудиозаписей, найденных в соответствии с указанной строкой запроса q, и массив соответствующих им объектов, каждый из которых имеет поля aid, owner_id, artist, title, duration, url.

Как фильтровать-то? Через libastral?

anonymous
()
Ответ на: комментарий от anonymous

Лол, дал какую-то кашу — ни исходника, ни формата, а я ниасилил.

anonymous
()
Ответ на: комментарий от anonymous

Ну справедливости ради следует заметить, что помимо того что возвращает vk api можно еще вручную из mp3 теги вытащить. Оттуда можно как минимум добыть название альбома, а так же устроить какой-нибудь хитрый фильтр основанный на результатах сравнения названия/исполнителя из тегов и из vk api.

morse ★★★★★
()
Ответ на: комментарий от anonymous

Регэкспами, 80-90% отсеивается небольшим набором, потом сортировка по похожести artist+title. Лучше конечно прикрутить natural language processing, но я так, погулять вышел.

Список треков выкачивается с discogs+musicbrains, что удобно и уже сокращает левые результаты.

anonymous
()
Ответ на: комментарий от morse

Да, но это медленно. Лучше так обработать, а потом из наиболее вероятных читать теги.

anonymous
()
Ответ на: комментарий от morse

Это явно не задача качалки музыки из вконтактика.

anonymous
()

спасибо за скрипт
надо бы запилить репу со скриптами на bash/sed/awk/perl/python/ruby/php

ubuntuawp ★★
()
Ответ на: комментарий от snoopcat

бтв, у меня из 124 треков удалили только 2. добавил точно такие же новые.

У меня удалили процентов 20, но я вернул всё в течении нескольких дней :) И акция это была разовая, с лета больше ничего не удаляли.

KRoN73 ★★★★★
()
Ответ на: комментарий от farzeet

Значит попсу не слушаешь.

Вообще-то, сносили равно и тонны классики рока (и не только рока, и не только классики) :) У меня Rolling Stones, Creedence, Muse, Blind Guardian, Placebo, Offspring... Из бардов кого-то сносили.

Но удаления касались только первых страниц результатов поиска. На 3..4..5 страницах можно было найти :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.