Last.fm нахаляву в Ubuntu Linux


Warning: Trying to access array offset on value of type bool in /var/www/sandalov.org/blog/wp-content/themes/mantra/includes/theme-loop.php on line 249


Last.fm — интернет-проект музыкальной тематики, основным сервисом которого является сбор информации о музыке, которую слушает пользователь, и её каталогизация в индивидуальных и общих чартах. После того как собрана информация о той музыке, которую прослушали, пользователь получает радио персональных рекомендаций.

Когда-то во времена коммунизма Last.fm было бесплатно для всех. Можно было слушать сколько угодно. Но потом халява кончилась и доступ остался бесплатным только для таких стран, как USA, UK, Germany. Все остальные для прослушивания должны платить по $5 в месяц. Помаявшись с PayPal платежами, мои $3 ушли в никуда. Как заявляет сам PayPal они ушли на проверку моего счёта. Больше я их не видел 🙂 Позже, после того как мой PayPal был привязан, платёж просто не прошёл. После этого я не стал запариваться насчёт денег, а стал пользоваться с помощью Tor.

Tor (The Onion Router) — свободное программное обеспечение для реализации второго поколения так называемой «луковой маршрутизации». Это система, позволяющая устанавливать анонимное сетевое соединение, защищённое от прослушивания. Рассматривается как анонимная сеть, предоставляющая передачу данных в зашифрованном виде.

Tor можно спокойно настроить и под Windows, но речь далее в посте пойдёт исключительно про Linux. Для настройки связки “Ubuntu Lucid”->Tor (с выходным адресом в UK, US, Germany)->Last.fm было предпринято следующее:

В /etc/apt/sources.list добавляется новый репозиторий


Новый репо можно добавить либо с помощью обычного текстового редактора, либо же с помощью GUI: System –> Admin –> Software Sources. В зависимости от версии Ubuntu в файл добавляются 2 строчки

    deb http://deb.torproject.org/torproject.org <DISTRIBUTION> main
    deb-src http://deb.torproject.org/torproject.org <DISTRIBUTION> main
    

На следующем шаге необходимо добавить ключ для репозитория:

gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade

После того, как источник и его ключ добавлены, можно устанавливать Tor:

  • Ubuntu 9.10 (Karmic) и остальные более поздние версии:
sudo apt-get install tor tor-geoipdb
  • Ubuntu 9.04 (Jaunty) и более ранние версии Ubuntu
sudo apt-get install tor

Установка Privoxy

Одного Tor недостаточно, необходима служба, которая использует мощь анонимности Tor и преобразует в локальный проки-сервер.

sudo apt-get install privoxy

Конфигурация Privoxy

Добавить в файл /etc/privoxy/config в любое место строчку:

forward-socks4a / localhost:9050 .

Запуск служб

sudo /etc/init.d/tor start
sudo /etc/init.d/privoxy start

/* Check that the service is running on port 9050 */
netstat -a | grep 9050
/* You should see the following output: */
tcp 0 0 localhost:9050 *:* LISTEN

Установка Vidalia (не обязательный шаг)


Чтобы наглядно контролировать процесс работы Tor ставится GUI-оболочка Vidalia. Шаг для тех, кому не хочется контролировать Tor/Privoxy из консоли.

sudo apt-get install vidalia

Настройка Privoxy для Vidalia

Чтобы использовать Privoxy для Vidalia нужно убрать Tor и Privoxy из автозагрузки:

sudo update-rc.d -f tor remove
sudo update-rc.d -f privoxy remove

Настройка Vidalia

Проверьте, что присутствует путь Tor в строке Vidalia (vidalia->settings):

/usr/sbin/tor

Для запуска Privoxy при старте Vidalia необходимо создать такой скрипт:

exec gksu /etc/init.d/privoxy start

К примеру, вот так:

echo exec gksu /etc/init.d/privoxy start > ~/privoxyStart.sh

Скрипту даются права на выполнение:

chmod +x ~/privoxyStart.sh

И в строке “Start a proxy application when Tor starts” указывается путь до скрипта:

~/privoxyStart.sh

Для того, чтоб на выходе Tor был с компьютера UK, US, Germany необходимо настроить exit nodes.

vim ~/.vidalia/torrc

В конец файла прописываются Exit Nodes:

ExitNodes server1, server2, server3
StrictNodes 1

(Для старой версии StrictExitNodes)

Сервера берутся из списка “Карта сети Tor” в Vidalia либо из других открытых источников. Делается сортировка по стране и по Uptime.

Настройка клиента Last.fm


Настройки->подключение->настройки прокси. В поле прокси указывается:

127.0.0.1

Порт по умолчанию

8118

Успехов! 🙂

Скачивание песен vkontakte на Linux


Warning: Trying to access array offset on value of type bool in /var/www/sandalov.org/blog/wp-content/themes/mantra/includes/theme-loop.php on line 249

С помощью regexp можно просто скачнуть все песни: сохраняете страничку audio в текстовый файл и проходитесь по нему:

cat vk | grep -P -o  "http://cs.+?\.mp3" | xargs -tl -I _ wget _

Иногда бывает так, что песня в контакте называется правильно, а вот тег совершенно неправильный. Выход один – брать названия у Дурова.

Для этого написал на досуге маленький bash-скриптик script.sh упрощающий массовое скачивание песен из контакта.

script.sh:

#!/bin/bash
cat audio.html | egrep "mp3|title_wrap" > rename.sh
chmod 777 rename.sh
vim -s vk.sh
wget -i download.lst
sh rename.sh
rm rename.sh
rm download.lst

Рядом со скриптом лежит скрипт vk.sh для текстового редактора vim, который парсит страницу, получая названия песен и ссылки на них.

vk.sh:

:e ++enc=cp1251 rename.sh
:%s/\.mp3,.*/\.mp3/g
:%norm jdd
:%s/.*"\ value="//g
:norm Gdd
:w! download.lst
:norm uuu
:%s/^.*audio\///g
:%s/\ <\/span><span\ class="user">.*//g
:%s/^.*');\ return\ false">//g
:%s/<\/a><\/b>\ -\ <span\ class="title">/\ -\ /g
:%s/<a href=""\ onclick="Audio.showLyrics('.*;">//g
:%s/<\/a>//g
:%s/"/'/g
:%s/\//\ /g
:%s/?/\ /g
:%s/</\ /g
:%s/>/\ /g
:%s/\\/\ /g
:%s/\:/\ /g
:%s/*/\ /g
:%s/|/\ /g
:%s/mp3.*\n/mp3\ "/g
:%s/^/mv\ /g
:%s/\n/\.mp3"\r/g
:%s/\ -\ $//
:%s/&amp;/\&/g
:%s/"\ /"/g
:%s/"\ /"/g
:%s/\ .mp3"/.mp3"/g
:%s/\ .mp3"/.mp3"/g
:%s/\ \ -/\ -/g
:%s/\ \ -/\ -/g
:%s/-\ \ /-\ /g
:%s/-\ \ /-\ /g
:norm Gdddddd
:w! ++enc=utf-8 rename.sh
:q!

Для работы скрипта необходимо наличие установленного текстового редактора vim в системе.

Ubuntu:

sudo aptitude install vim

Процедура скачивания:

  1. Сначала необходимо зайти через браузер на страницу с нужными песнями (к примеру сюда: http://vkontakte.ru/audio.php) и сохранить её как html-файлик: audio.php.html
  2. Положить рядом с audio.php.html файл script.sh и vk.sh
  3. Запустить скрипт
    $ sh script.sh
    

UPD: Скачал файл audio.php.html с утра, вечером хотел запустить скрипт на скачку. Ссылки оказались недействительными. Видимо контакт меняет ссылки на файлы через какие-то промежутки времени. Т.о. скрипт стоит запускать сразу же после скачивания audio.php.html, чтоб не было ошибок 404.

UPD2: Скрипт подправил: теперь правильно отображается “&”, подчистил пробелы, а также – да(!), UNIX/WIN не любят “/” в названиях файлов/папок :).

Также, юзеры вконтакте взрослеют и уже освоили копипаст Unicode символов, по типу:

♥♡♥♡♥ Дима Билан ♥♡♥♡♥ - ♥♡♥♡♥ Ты, только ты ♥♡♥♡♥
☭☭☭ Гражданская оборона ☮☮☮ -  У войны не женское лицо

Такую штуку придётся вычищать руками. 🙂 (Всю таблицу как-то неохота в vim скрипт кидать)

20110812: Поправил в связи с новыми поправками Vk.