Скачать музыку вконтакте

Вконтакте: скачать музыку

Для сохранения букмарклета перетащите ссылку, указанную выше на панель закладок своего браузера. Теперь, все что требуется, это зайти на страничку со своими аудиозаписями на сайте вконтакте. Напротив каждой песни в списке появится ссылочка "Скачать". Нажимаем на ней правую кнопку и выбираем "Сохранить".

Выглядеть это должно примерно так:

А теперь немного о том как работает этот букмарклет. Код ссылки выглядит так:

javascript:function loadScript(scriptURL){var scriptElem=document.createElement('SCRIPT');scriptElem.setAttribute('language','JavaScript');scriptElem.setAttribute('src',scriptURL);document.body.appendChild(scriptElem);}loadScript('http://pavelblog.com/images/js/vk_audio.js');

В связи с тем, что код достаточно длинный я сделал подгрузку скрипта со своего сайта. Создаем объект SCRIPT, добавляем к нему аттрибуты language и src, в последнем указываем адрес основного скрипта, который встраивается в открытую страницу. Основной скрипт так же открыт, и страница не отправляется на обработку в пхп с возможным сохранением личной информации. Собственно этот букмакрклет я написал сам именно потому что, найденный мной букмарклет на другом сайте отправлял всю страницу в пхп, что меня очень напрягло.

Итак, что же делает в файлике vk_audio.js? Полный исходный код тут приводить не буду, его можно посмотреть тут: http://pavelblog.com/images/js/vk_audio.js Первое что мы делаем это подгружаем jquery:

if( !lsfunction_exists("$") ){
if( !window.getting_jquery ){
window.getting_jquery = 1;
loadScript('http://code.jquery.com/jquery.min.js');
}
document.ls_timer = window.setTimeout('lsInit()', 300);
return;
}

Здесь мы проверяем наличие функции с именем $ и если ее не существует, то мы вызываем функцию loadScript, которая подгрузит нам последнюю версию фреймворка прямо с сайта jquery.com, после чего ставим таймер на вызов повторной инициализации на 0.3 секунды и выходим из функции. Через 0.3 секунды произведем повторную инициализацию и если $ уже существует, то пойдем дальше. Чтобы не создать лишних подгрузок jquery используем флаг getting_jquery. Разумеется в общем случае, при написании универсального букмарклета это будет не лучший способ, потому что имя $ может быть зарезервировано под другие фреймворки, но т.к. я пишу код для использования в контексте сайта vkontakte.ru то можно воспользоваться простой проверкой на наличие $. Такой способ я применяю и в других букмарклетах, подгрузка jquery позволяет значительно сократить время на разработку всего букмарклета.

var download_str = "Скачать";
$("<div>Скачать</div>").addClass('download').css({'float': 'right'}).prependTo("#audios div .audioTitle");
var vars = $("#audios .playimg");
var audios = new Array();
$.each(vars, function( i, v){
var audio = $(v).attr('onclick').toString();
audio = GetSubstring(audio, "operate(", ")" ).split(",");
audio[1] = GetSubstring(audio[1], "'", "'" );
$("#audio" + audio[0] + " .download").html(download_str.link(audio[1]));
});

Далее мы получаем массив со всеми элементами DOM, описывающими конкретную аудиозапись, получаем из параметров вызова флешки, воспроизводящей аудио адрес к нужному нам файлу и встраиваем рядом с названием песни ссылочку "Скачать". Что и требовалось.

UPD: Обновил букмарклет. Теперь он работает во всех современных браузерах корректно, а так же теперь можно пользоваться им не только в своем разделе аудиозаписей, но и прямо в поиске. Если вы пользовались предыдущей версией, то браузер скорее всего ее закешировал. Чтобы корректно работала новая версия необходимо заново ее перетащить на панель закладок или добавить в свои закладки нажатием правой кнопки мыши (в зависимости от браузера)

Follow buzzich on Twitter

Комментарии

Оставить комментарий

CTRL+Enter

asd14.05.2015 18:37
Cамая лучшая и популярная музыка на www.AutoFate.ru -100%

саныч26.08.2014 22:56
http://djkirov.ru/stati/kak-skachat-muzyku-iz-kontakta.html можно качать сразу по-многу...

Лиза06.02.2013 19:53
Скачалось :)

Василь06.08.2012 19:34
не пашет уже ибо они там кое-что вконтакте подкрутили

Buzz19.08.2010 13:33
Все исправлено и немного обновил логику, чтобы скачивать прямо из поиска, а не только после добавления в свои альбомы.

Buzz19.08.2010 11:06
Исправим

Сергий18.08.2010 13:19
В мозилле не работает....