Добавить комментарий

Vk скачать музыку со стены, группы

Качать треки стало еще легче с помощью вк апи.
Спасибо хорошему ресурсу http://bupy7.github.io/gdl/ выдает ссылки на файлы. Можно смело сохранять в list.txt и запускать качалку

http://mihaly4.ru/blog/ochumelye-ruchki/post/poluchaem-ssylki-audiozapisei-so-steny-grupp-vkontakte

$ wget -i list.txt

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

Если немного модернизировать скрипт, то можно получить список для переименования с помощью wget.

var wallGet2 = function(offset, count, groupId) {
      $.ajax({
          url: 'https://api.vk.com/method/wall.get',
          data: {
            count: count,
            owner_id: groupId,
            offset: offset
          },
          type: 'get',
          dataType: 'jsonp',
          success: function(result) {
            var regexp = /\?extra=[0-9a-z_\-]*$/i,
              links = [],
              item = '';
            for (var i = 1; i != result.response.length; i++) {
              if (!result.response[i].attachments) {
                continue;
              }
              for (var j = 0; j != result.response[i].attachments.length; j++) {
                if (result.response[i].attachments[j].type == 'audio') {
                  item = result.response[i].attachments[j].audio.url.replace(regexp, '');
                  if (item.length) {
                    links[item] = result.response[i].attachments[j].audio.artist + ' - ' + result.response[i].attachments[j].audio.title;
                  }                 
                }
              }
            }
            var links_final = '';
            for (var i in links) {
              links_final +=  ' -O "' + links[i] + '.mp3" ' + i + "\r\n";
            }
            $('#result').val(links_final);
          }});
};

wallGet2(0, 100, '-45127882');

Вписываете это в консоль js вашего браузера и в результатах появится другой вывод. Конечно, подменяя третий параметр на вашу группу. Допилите скрипт чтоб брался из инпута.
Сохраняем в файл и скармиливаем это все в wget.

Скрипт создаст строки с параметром -O для переименования файлов. И по возможности уберет дубли по имени ссылку на файл.

$ while IFS='' read -r line || [[ -n "$line" ]]; do eval "wget $line"; done < list.txt

или так

$ while read line; do eval "wget $line" done <list.txt

Замечания:
1. Если не использовать IFS – можно потерять отступы.
2. Всегда нужно использовать -r для чтения
3. Не читайте линии через for

Имена файлов проставлял специально для EasyTag, чтоб потом быстро назначить нормальные Испольнитель - Название.

%a - %t