magist3r 15.02.2011 14:59
How-to`s — Быстро выкачать музыку из контакта с помощью chromium и wget
Предыстория. Сделал я себе во всеми известной социалке плейлист из любимых треков. Ну а чо, довольно быстро и удобно получилось, да и везде под рукой. Но вот незадача - магнитола в машине не умеет играть музыку из контакта)). Посему пришлось выкачивать все треки. Но ручками само собой это делать не вариант, поэтому добро пожаловать под кат.У меня стоит Хромиум, и для него есть замечательное расширение под названием Vkontakte Tools. Помимо всего прочего, оно умеет создавать файлик вида playlist.m3u. Он то нам и понадобится.
Итак, по-порядку:
1) Ставим расширение Vkontakte Tools.
2) Заходим ффконтактик, аудиозаписи, выбираем нужный плейлист, жмакаем наверху "Редактировать". Должна появиться иконка винампа, после нажатия на которую получаем playlist.m3u.
3) Открываем полученный файлик vim'ом любимым текстовым редактором, смотрим. Вот кусок файла:
Как видно, файлик содержит прямые ссылки на треки! Осталось только их распарсить, что и делаем:
1 |
|
Я использовал sed для того, чтобы убрать из ссылок "хвосты" с названиями треков.
4) Итак, мы имеем файл list.txt с ссылками на наши треки. Дело за малым: нужно скормить этот файл wget'у:
1 |
|
На этом все. Осталось только подождать, когда все скачается.
Я понимаю, что решение с хромиумом подойдет далеко не для всех. Если кто-то подскажет, как получить список ссылок в других браузерах, с удовольствием добавлю в топик. Спасибо за внимание!
UPD. Немного перемудрил с sed. Поправил.
UPD2. Страничка "Аудио" и правда содержит прямые ссылки на файлы, вот только при выборе плейлиста в коде почему-то видны песенки из других плейлистов. В общем, вариант с распарсиванием странички тоже имеет место быть).
На странице "Аудио" нет прямых ссылок на песни, ну и если прямую ссылку вы получили, то кукисы не нужны, ну а если всё же нужно для другого дела, у wget есть параметр --load-cookies, подробнее смотрите man wget
Для sed конструкция странная, по-моему, проще было бы получить ссылку на файл сразу с помощью grep. А так, спасибо, перенесите, может в tips & tricks.
Ммм…пусть будет ещё быстрее. =)
Скачивает в текущую папку и переименовывает. Учитывает многостраничность.
Заранее извиняюсь за говнокод, правки приветствуются. ^_^
Тыц
Скачивает в текущую папку и переименовывает. Учитывает многостраничность.
Заранее извиняюсь за говнокод, правки приветствуются. ^_^
Тыц
А у меня получился вот такой вот http://pastie.org/1567316 аналог (совсем без плюшек) на Python'е =)
ps: где-то я уже видел твой юзерпик =\
ps: где-то я уже видел твой юзерпик =\
grep -v '#' playlist.m3u | sed s'/?.*$//g' > list.txt
Страница "Аудио" в контакте содержит прямые ссылки на mp3 файлы.
Для скачивания этих файлов авторизация и куки не нужны. Неделю назад выкачивал плэйлист девушке примерно таким же способом, но тупо сохранив страничку "Аудио" в мозиле и, распарсив её, скормил wget-у!
Для скачивания этих файлов авторизация и куки не нужны. Неделю назад выкачивал плэйлист девушке примерно таким же способом, но тупо сохранив страничку "Аудио" в мозиле и, распарсив её, скормил wget-у!
Получить прямые ссылки из "вконтакте аудио" в файл "list":
Выкачать все с помощью "wget":
^_^
curl -c cookie "http://vkontakte.ru/login.php?email=MY_MAIL&pass=MY_PASS"
curl -b cookie "http://vkontakte.ru/audio.php" | grep -o "http://.*\.mp3" > list
curl -b cookie "http://vkontakte.ru/audio.php" | grep -o "http://.*\.mp3" > list
Выкачать все с помощью "wget":
wget -i list
^_^
http://bkmz.org/275/skatchaty-vse-pesni-vkontakte
А я так раньше делал =)
А я так раньше делал =)
Поздравляю, теперь Google благодаря своему механизму PageRank сочтёт, что Ваш личный сайт связан со словом "лох" :)
А как теперь выкачивать mp3?
Так как убрали пагинацию, и сделали автоматическую подгрузку mp3, и на html странице всего лишь 50 mp3, вместо 800 + если я все прокручу.
Так как убрали пагинацию, и сделали автоматическую подгрузку mp3, и на html странице всего лишь 50 mp3, вместо 800 + если я все прокручу.
Можно так: прокрутить записи до конца в браузере, сохранить сгенерированный код страницы, а потом выдернуть ссылки на файлы.
Расширение обновилось. Так что теперь можно прокрутить страничку до конца и скачать плейлист со всеми треками.
grep 'mp3' audio.htm | awk -F "'" '{print $2}' > list.txt
Но как wget'у подсунуть кукисы?