Но все хорошо когда есть GUI'ёвый браузер и доступ к ресурсу, а когда нет такого? К примеру браузера нет под рукой, или аудиосистема подключена дома к основному компу на котором Linux, а сам лежишь в соседней комнате с ноутом ... ?
Одним словом нужно было что то типа из под консоли (командной строки)!
Дано: Linux: curl, bash, ну и mplaeyr, если еще и уровнем звука управлять то alsamixer, а если еще и непрерывно от сессии, то еще и screen
Решение:
1. Ставим вышеперечисленные пакеты:
sudo apt-get install curl mplayer screen2. Создаем исполняемый файлик ...
или
sudo urpmi curl mplayer screen
touch vkplay.sh && chmod a+x ./vkplay.sh3. Открываем его своим любимым редактором и вставляем нижеписанный код:
#!/bin/bash # Меняем на свой логин/пароль EMAIL=your@mail.net PASS=your_super_password TMPC=/tmp/~vkcookie TMPG=/tmp/~vkget echo Получаем куки ... gets=`curl -s --data "email=$EMAIL&pass=$PASS" http://login.vk.com/?act=login | egrep -o \([a-z]\|[0-9]\){20\,}` curl -s --cookie-jar $TMPC --data "s=$gets&op=slogin&redirect=1&expire=0&to=0" http://vkontakte.ru/login.php IFS=$'\n' OFFSET=0 # И поехали по списку "Мои Аудиозаписи"... while [ ! $OK ]; do URL=http://vkontakte.ru/audio.php?offset=$OFFSET curl -s --cookie $TMPC -o $TMPG $URL PL=(`cat $TMPG | grep -i title_wrap | grep -v lyricsLink | sed -r "s/<([^<]*)>|(\&\#[0-9]{2,4};)|^\s*//g" | sed -r "s/[ ]{2,}/ /g"`) PLC=${#PL[@]} if [ $PLC \> 0 ]; then UL=(`cat $TMPG | grep -o 'http.*mp3'`) ULC=${#UL[@]} for ((n=0; n < $PLC; n++)) do PL[$n]=`echo ${PL[$n]} | sed -r 's/[ \t]*$//'` if [ -n "${PL[$n]}" ]; then echo " $(( $OFFSET+$n )). ${PL[$n]}" # Собственно играем нашу песенку ... Опция "-mixer /dev/mixer" говорит mplayer'у играть на звуковой той машины на которой запускается он сам ... mplayer -msglevel all=1 -mixer /dev/mixer ${UL[$n]} fi done OFFSET=$(( $OFFSET+$PLC )) else echo Всё! Всё спели, можно и отдохнуть чутку... OK=1 fi
4. Сохранились, не забыли указать свой логин и пароль, и даже запустились ... и о счастье! запело шарманка наша ... но мы та хотим из другой комнаты и вообще не быть привязанными ...
4.1 запускаем терминальчик по ssh, кто что, xterm, konsole, putty, etc ...
4.2 в нем screen (выход из него сочетание: ctrl+a, d) (обратно подключится к скрину: screen -rd)(если у тебя уже запущено более одного скрина, как переконекчиваться по номеру сессии смысла тебе объяснять уже нет ;) )
4.3 ну и запускаем наше чудо-файлик
4.4 громкостью управлять или самим mplayer'ом (подробности man mplayer), или запускаем alsamixer ... кому что по душе =)
Примечания:
- Листать вперед/назад фишки нет ... но додумать можно, средствами формирования сначала плейлиста а потом скармливания мплаеру)
- Пропустить песню: Ctrl+C, после чего заиграет следующая из списка
- По крону (crontab), вообщем, классный будильник получился ))
пропущен done в конце скрипта, ну и у меня не взлетело - разбираюсь почему сейчас
ОтветитьУдалить