Скрипт скачивания аудио с контакта

Обсуждение всего что связано с сайтом ВКонтакте, кроме обсуждения приложений.
Ответить
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Скрипт скачивания аудио с контакта

Сообщение VIP »

Ниже приведен один из способов как можно скачивать музыку из контакта со страницы поиска аудиозаписей!.

Для интересующихся в подробностях описан механизм работы предложенного метода.


Инструкция:

1. Открываете в контакте страницу с музыкой, которую вы будете качать.
2. Копируете в буфер нижеприведенный Javascript код в зависимости от того откуда Вы хотите скачать музыку.

Код: Выделить всё

javascript:function operate(one, url, three){ window.open(url,'Download'); } 
3. В окне контакта подменяете URL. Вместо вашего http://vkontakte.ru/audio.php?id=1721063 прямо в адресную строку вставляете Javascript код. Не забудте нажать Enter после вставки!
4. Вам покажется, что ничего не произошло, но на самом деле теперь при нажатии на проигрывание песни будет предлагаться скачать ее, никакой музыки звучать не будет. Жмем и качаем в удобное место на диске!
5. Может случиться так, что в Ваш браузер встроен QuickTimePlayer. Тогда придется сохранять файл средствами браузера.
6. Еще может случиться так, что в Вашем браузере отключено Меню. Тогда смотрите ниже пример как его вернуть обратно для Internet Explorer. В других браузерах это делается аналогичным образом. Жмем правой кнопкой мыши в верхней области браузера и выбираем пункт "Строка меню".
7. Скачивание музыки в браузере Chrome. Все просто! После нажаия на Play появится вот такое серое окно. Нажмите в любом месте окна правой кнопкой мыши и далее "Сохранить как".
Теперь вы умеете скачивать музыку из контакта. Успехов! Есть вопросы? Пишите.


 Узнать подробнее о механизме работы этого Javascript
Информация для тех, кому интересно как же это все работает. И как можно было самому до всего этого дойти. Конечно тут без знания программирования, HTML, Javascript не обойтись. Если у Вас нет этих знаний, то скорее всего информация, которая пойдет ниже, Вам не поможет.

Первое что нужно понять - это что такое подмена URL в браузере и что нам дает вставка такого Javascript кода в адресной строке. Так вот, когда страница контакта с музыкой открыта, то HtmlDocument браузера содержится полностью ее код. И здесь не только HTML, но и подгруженные CSS, Javascripts и так далее. Когда же мы вставляем Javascript в адресную строку, то он тут же прописывается в HtmlDocument.

Вернемся к странице с музыкой, давайте посмотрим ее HTML код. В нем вы можете увидеть тэги, в которые завернуты мини-плееры для песен. Выглядят они следующим образом:

Код: Выделить всё

<tr>
 <td style="width: 20px; vertical-align:top">
  <img class="playimg" 
          onclick="return operate(63101308,4373,18572987,'037180c89420',279);" 
          id="imgbutton63101308" nosorthandle="true" src="images/play.gif"/>
 </td>
 <td style="width: 440px;">
  <div style='float:left'>
   <b id="performer63101308">
    <a href='gsearch.php?section=audio&c[q]=Alexander Rybak'>Alexander Rybak</a>
   </b> -
   <span id="title63101308">Fairytale (Subway Funk drum'n'bass bootleg)</span>
   </div><div class="duration">4:39</div>
 </td>
</tr>
По названию любой композиции легко можно найти кусок HTML кода, отвечающий за отображение плеера для этой песни. Посмотрим внимательнее на этот блок. В нем видно, что при нажатии на картинку с классом playimg вызывается некоторая функция operate(63101308,4373,18572987,'037180c89420',279). Мне кажется, что тут даже из названий все понятно. Очевидно, что функция operate и есть та самая функция, которая заставляет зазвучать песню. Будем искать ее реализацию.

Смотрим снова HTML код страницы, а именно ищем в head подключение Javascript-ов. В коде можно найти целых 7 таких подключений. К счастью их названия говорят сами за себя, поэтому нам не придется искать нашу функцию во всех, а мы сразу заглянем в /js/audio.js. Открыть этот файл можно по адресу http://vkontakte.ru/js/audio.js. Если вы воспользуетесь поиском и найдете в файле функцию operate, то здесь вы увидите, что данная функция разбирает входные параметры и с ними вызывает другую функцию doOperate. Сейчас мне интересна функция doOperate, т.к. в ней происходит классная вещь: параметры записываются в некий массив fileInfo! А нам разве не mp3 файл вытащить нужно?

Осталось понять что из себя представляет структура fileInfo, т.е. как из нее получить имя файла. Если еще покопаться в Javascript файле, то можно найти очень много интересных функций. Не буду описывать все мои поиски, основной находкой было то, что есть еще некая флэшка, находящаяся по адресу http://vkontakte.ru/swf/AudioPlayer_wall.swf. Я ее зачем-то выкачал, думал декомпилироваться прийдется. Потом вспомнил, что к флэшке все равно по GET или POST запросу пойдет обращение. Поэтому все обошлось без декомпиляций и помог мне обычный HTTP сниффер. Зашел я на страницу с песнями, запустил сниффер, нажал Play и увидел, что запрос идет сначала к флэшке, а потом уходит по адресу http://cs4373.vkontakte.ru/u18572987/au ... c89420.mp3. О да, этот URL имеет много общего с параметрами, передающимися в функцию operate.

Кстати, флэшка эта похоже отвечает только за отображение бегунка, т.к. в нее никакие данные по HTTP не передавались, но все могло быть иначе. Конечно я сделал много лишних шагов. Можно было сразу сниффером воспользоваться, т.к. понятно, что mp3 где-то удаленно хранится и к ней 100% будет идти обращение. Тогда бы нам вообще никакого дела до флэшки не было. Но я надеюсь описание всего хода моих мыслей поможет Вам в поисках при решении других задач.

Дело остается за малым: написать свою функцию operate, которая будет обрабатывать событие onclick и отдавать нам mp3-ку с сервера контакта. Для тех, кто увлекся и забыл: функция была приведена в начале статьи. Чтобы она сработала, мы ее просто вставляем в адресную строку браузера, подменяя ей ту, что была загружена вместе со страницей в HtmlDocument. Пользуйтесь на здоровье!
odenoma
Сообщения: 1
Зарегистрирован: 21 янв 2011, 19:47

Re: Скрипт скачивания аудио с контакта

Сообщение odenoma »

блин, у меня этот скрипт почему-то не работает, а проги в лом качать. Обычно загружаю песни с контакта через онлайн сервисы типа такого. Там хоть ничего устанавливать не нужно.
nesvuin
Сообщения: 1
Зарегистрирован: 04 ноя 2011, 21:09

Re: Скрипт скачивания аудио с контакта

Сообщение nesvuin »

VIP писал(а):Ниже приведен один из способов как скачивать музыку из контакта со страницы поиска аудиозаписей!.

Для интересующихся в подробностях описан механизм работы предложенного метода.


Инструкция:

1. Открываете в контакте страницу с музыкой, которую вы будете качать.
2. Копируете в буфер нижеприведенный Javascript код в зависимости от того откуда Вы хотите скачать музыку.

Код: Выделить всё

javascript:function operate(one, url, three){ window.open(url,'Download'); } 
3. В окне контакта подменяете URL. Вместо вашего http://vkontakte.ru/audio.php?id=1721063 прямо в адресную строку вставляете Javascript код. Не забудте нажать Enter после вставки!
4. Вам покажется, что ничего не произошло, но на самом деле теперь при нажатии на проигрывание песни будет предлагаться скачать ее, никакой музыки звучать не будет. Жмем и качаем в удобное место на диске!
5. Может случиться так, что в Ваш браузер встроен QuickTimePlayer. Тогда придется сохранять файл средствами браузера.
6. Еще может случиться так, что в Вашем браузере отключено Меню. Тогда смотрите ниже пример как его вернуть обратно для Internet Explorer. В других браузерах это делается аналогичным образом. Жмем правой кнопкой мыши в верхней области браузера и выбираем пункт "Строка меню".
7. Скачивание музыки в браузере Chrome. Все просто! После нажаия на Play появится вот такое серое окно. Нажмите в любом месте окна правой кнопкой мыши и далее "Сохранить как".
Теперь вы умеете скачивать музыку из контакта. Успехов! Есть вопросы? Пишите.

Дело остается за малым: написать свою функцию operate, которая будет обрабатывать событие onclick и отдавать нам mp3-ку с сервера контакта. Для тех, кто увлекся и забыл: функция была приведена в начале статьи. Чтобы она сработала, мы ее просто вставляем в адресную строку браузера, подменяя ей ту, что была загружена вместе со страницей в HtmlDocument. Пользуйтесь на здоровье![/spoiler]
Да спасибо. очень удобный способ.
anon
Сообщения: 3
Зарегистрирован: 26 ноя 2011, 23:29

Re: Скрипт скачивания аудио с контакта

Сообщение anon »

здесь можно скачать музыку из вконтакте без каких-либо скриптов и установки дополнительных программ
http://вк.net/ (http://xn--b1aq.net/)
;)
Ответить