Показаны сообщения с ярлыком консоль. Показать все сообщения
Показаны сообщения с ярлыком консоль. Показать все сообщения

четверг, 6 сентября 2012 г.

MOC - музыка в консоли. Альтернатива XMMS и Exaile.

MOC - Music On Console - консольный плеер для никсовых систем без иксов. То-есть из консоли (на правах капитана). Устанавливать и использовать его (для GUI есть замечательный плеер Exaile, полноценный аналог KDE'шного Amarok'а) нужно в двух случаях:
1) вы - любитель консоли и всего, что с ней связано
2) на вашей системе иксов нет в принципе (и в будущем не предвидится)
Выглядит moc вот так:
или так:
в зависимости от настройки, и очень в общем и целом напоминает MC. Сам я этой софтовиной пользовался, и довольно продолжительное время, и могу сказать, что это очень достойный экземпляр плеера вообще, и он может потягаться с GUI-собратьями (даже ввиду постоянно ведущихся холиваров на эту тему) в удобстве управления, функционале (он и треки на last.fm скробблить умеет) и всем остальном.

Итак, если вас все-таки заинтересовал данный шедевр консольного искусства, то следуем следующим нехитрым инструкциям по установке:


sudo aptitude install moc moc-ffmpeg-plugin
Это установит плеер вместе с необходимыми плагинами. Далее можно сразу стартануть плеер:
 
mocp
Полюбовались, закрываем по Shift+Q. Эта команда остановит и сервер mocp, кстати. Для разрыва текущего соединения плеера с сервером нужно жмакнуть просто Q.
Для редактирования конфиги создаем несколькими командами стандартный файл конфигурации и открываем его:

sudo cp /usr/share/doc/moc/examples/config.example.gz ~/.moc

sudo gunzip ~/.moc/config.example.gz


sudo mv ~/.moc/config.example ~/.moc/config



sudo nano ~/.moc/config

Вот примерный конфиг:

Layout1 = "directory:0,0,100%,100% playlist:0%,0,50%,100%" 
ReadTags = yes 
MusicDir = "~/Music/" 
Mp3IgnoreCRCErrors = yes 
AutoNext = yes 
FormatString = "%(t:%t:)" 
OutputBuffer = 2048 
InputBuffer = 512 
Prebuffering = 64 
OSSDevice = /dev/dsp 
OSSMixerDevice = /dev/mixer 
OSSMixerChannel = pcm 
OSSMixerChannel2 = master 
Equalizer_SaveState = yes 
ShowHiddenFiles = no 
StartInMusicDir = yes 
HideFileExtension = no 
ShowFormat = yes 
ShowTime = IfAvailable 
UseMmap = no 
XTermTheme = transparent-background 
ID3v1TagsEncoding = WINDOWS-1251 
UseRCC = yes 
UseRCCForFilesystem = yes 
TagsCacheSize = 256 
FollowPlayedFile = no 
ModPlug_MegaBass = yes 
QueueNextSongReturn = yes


Далее идет уже тонкая настройка плеера (команды отсюда добавлять в конец файла config):


Команда нормализирует громкость выделенного файла в MOC по F4:

ExecCommand4 = "mp3gain -r -k -w -T -d 3 %f"

Банальная команда копирования выделенного файла по F5 в определенный каталог. Полезно при прослушивании чужой музыки на флешке и копирования понравившихся треков:

ExecCommand5 = "cp %f /home/username/Музыка/Скопированная"

Еще более банальная команда - удаление выделенного файла по F8:

ExecCommand8 = "rm %f" 

Для скачивания песен из интернет-плейлистов m3u (по нажатию F7) в указанный каталог:

ExecCommand7 = "wget -c -P /home/username/Музыка/Загруженная %f"

Кстати, для запуска плейлистов нужно вбить в терминале:

mocp /папка_с_плейлистом/название_плейлиста.m3u

Вот список некоторых "горячих клавиш" moc:

Открытие/закрытие плеера/сервера mocp

Q (Shift+q) — закрытие сервера и клиента moc

q — закрытие клиента moc, сервер при этом, продолжит проигрывание

Tab — Навигация между панелями проигрывать файлы можно как из файлового менеджера, так и из плэйлиста

Плейлисты

a — Добавить файл для воспроизведения в плэйлист

A (Shift+a) — рекурсивное добавление в плэйлист, те все музыкальные файлы, находящиеся в папке будут добавлены в плэйлист


Ctrl+o Проигрывание url


Ctrl+u — Добавить url адрес в плейлист


V (Shift+v) Сохранить плейлист

u — переместить файл выше в плэйлисте


j — переместить файл ниже в плэйлисте


d — удалить файл из плэйлиста


C (Shift+c) — очистить плэйлист

Управление

ENTER — запустить плей

n — воспроизвести следующий трек


b — воспроизвести предыдущий трек

> (Shift+.) сделать громкость больше


< (Shift+,) сделать громкость меньше


p — пауза в проигрывании (снять паузу — повторное нажатие p)


s — остановить проигрыватель (начать проигрывание — ENTER)

S (Shift+s) — включает режим Shuffle — проигрывание плэйлиста в случайном порядке


R (Shift+r) — включает режим Repeat — циклическое воспроизведение плэйлиста

Справка

h — справка по командам moc

Простые команды, которые лепятся на горячии клавиши

mocp -f   следущий трек

mocp -r   предыдущий трек

mocp -G  play stop

Для того, чтобы научить moc скробблить треки на last.fm нужно:

1) скачать/установить lastfmsubmitd

2) добавить через adduser своего пользователя в группу lastfm

3) прописать в конфиг /etc/lastfmsubmitd.conf свой логин и пароль к аккаунту Lastfm

4) скачать и закинуть в папку ~/.moc скрипт, который будет передавать данные в lastfmsubmitd

5) сделать его исполняемым и дать права на выполнение вашему пользователю

6) в файл ~/.moc/config прописываем такую строку:

# lastfmsubmitd 
OnSongChange = "/home/имя_пользователя/.moc/moc_submit_lastfm --artist %a --title %t --length %d --album %r"

Проверим, работает ли демон lastfmsubmitd:

top -b -n 1 | egrep "lastfm|PID"

Выхлоп должен получиться где-то таким:

PID   USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
15891 lastfm    20   0  9688 4388 1756 S    0  0.2   0:11.26 lastfmsubmitd

Перезапускаем mocp, чтобы изменения (любые) вступили в силу. После запуска ставим на воспроизведение любой трек и смотрим выхлоп команды ps:

ps -eo user,pid,cmd | grep lastfm

Выхлоп должен получиться где-то таким:

lastfm    15891 /usr/bin/python /usr/bin/lastfmsubmitd
posix     30198 python /home/posix/.moc/moc_submit_lastfm
                --artist Radiohead --title Paranoid Android --length 06:24 --album OK Computer

Вот, собственно, и весь конфиг-апгрейд. На выходе после этой небольшой настройки вы получаете действительно замечательный плеер, не жрущий ресурсов и вообще просто консольный, теплый и ламповый ^_^

среда, 5 сентября 2012 г.

Установка и настройка rTorrent в Debian

Источник статьи - статья на Хабре. И, хоть с момента написания поста прошло два года, актуальность он не потерял, так что оставлю все "as is" - для себя, чтоб не потерять.

rTorrent — еще один из самых популярных torrent клинтов в мире Unix-подобных операционных систем (о Transmission я уже написал несколько ранее). При создании этого клиента, по заявлению автора, во главе угла стояли «высокая производительность и хороший код», а использование mmap для отображения файлов в память позволяет добиться на широкополосных каналах трехкратного преимущества перед официальным клиентом. Еще одной характерной чертой rTorrent является наличие множества различных web-интерфейсов «на все вкусы» для удаленного управления. Именно об установке и настройке всего этого я и хочу рассказать на этот раз.


Установка rTorrent


При установке rTorrent я буду предполагать что все действия производятся в последней версии Debian (на момент написания статьи 2010-03-27 это Debian Lenny). Часто, при использовании этой ОС люди выбирают либо стабильную ветку ропозиториев, либо тестовую и отличаются они версиями, содержащихся в них, пакетов. К сожалению, в стабильной ветке находится пакет rtorrent версии 0.7.9 в то время как новейшая версия уже достигла номера 0.8.6. В связи с этим, я расскажу об установке новейшей версии rTorrent отдельно для тестовой, и отдельно для стабильной веток репозиториев.

Установка rTorrent при стабильной ветке репозиториев Debian


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

Все что нам потребуется, так это подключить тестовую ветку репозиториев и установить из нее свежую версию пакета, но сделать это так, чтобы вся система в целом (за исключением нашего пакета) осталась на стабильной ветке. Выполнить эту задачу можно воспользовавшись механизмом «пиннинга» (не знаю как «pinning» благозвучно переводится на русский) подробнее о котором можно прочитать в официальной документации или, к примеру, вот здесь.

Для этого, в файл /etc/apt/sources.list нужно добавить тестовые репозитории:

deb http://ftp.ua.debian.org/debian/ testing main deb http://security.debian.org/ testing/updates main

Я добавлял украинское зеркало, вы же, выбирайте более подходящее вам в зависимости от географического положения или личных предпочтений ;)

Следующим шагом создадим файл /etc/apt/preferences и зададим в нем приоритеты для репозиториев таким образом, чтобы по-умолчанию выбирались пакеты из стабильной ветки:

Package: * Pin: release a=stable Pin-Priority: 700 Package: * Pin: release a=testing Pin-Priority: 650

Теперь нужно обновить список доступных пакетов:

# aptitude update

И выполнить установку последней доступной версии rTorrent:

# aptitude -t testing install rtorrent

где опцией "-t" мы явно задали использование тестового репозитория для установки данного пакета.

Далее переходим к настройке rTorrent.

Установка rTorrent при тестовой ветке репозиториев Debian

Tux
Если же у вас система изначально настроена на использование тестовой ветки репозиториев, то установка, в вашем случае, сводится всего к одной команде:

# aptitude install rtorrent

После этого можно переходить к настройке rTorrent.

Настройка rTorrent


Создаем файл с настройками ~/.rtorrent.rc подобный этому:

# Диапазон рабочих портов torrent клиента. # Если вы за NAT не забываем "пробросить" порты port_range = 32001-32049 # Включаем DHT dht = auto # UDP порт для DHT dht_port = 32000 # Обмен пирами peer_exchange = yes # Использовать ли UDP трекеры use_udp_trackers = yes # Директория в которую по-умолчанию будут загружаться файлы directory = /arch/.Downloading/ # Глобальные ограничения по скорости upload_rate = 80 download_rate = 800 # Директория для записи сессий rTorrent session = /home/username/.rtorrent_session # Задаем настройки для rpc управления scgi_port = 127.0.0.1:5000

Создаем папку для хранения сессии rTorrent:

$ mkdir .rtorrent_session

Вообще же, я привел лишь базовые настройки rTorrent. Более подробно о настройках этого замечательного torrent клиента можно прочитать вот тут, тут и тут.

Настройка автозагрузки rTorrent


Для того, чтобы rTorrent автоматически запускался при старте машины нужно выполнить несколько несложных действий. Вначале, установим screen, необходимый для обеспечения работы torrent клиента в фоне:

# aptitude install screen

Затем загрузим стартовый скрипт:

# cd /etc/init.d/
# wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh

Редактируем файл и указываем имя пользователя от которого будет запускаться rTorrent:

user="user"

Делаем файл исполняемым:

# chmod +x rtorrentInit.sh

Задаем владельцем файла системного пользователя root:

# chown root:root rtorrentInit.sh

Включаем «автозагрузку»:

# update-rc.d rtorrentInit.sh defaults

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

# /etc/init.d/rtorrentInit.sh start

Теперь, во время каждой загрузки машины, будет автоматически запускаться и наш torrent клиент.

web-интерфейсы

konqueror
Для работы web-интерфейсов, как вы уже наверняка догадались, требуется web-сервер. Это может быть как Apache, так и Lighttpd, а, вполне вероятно, и какой-либо другой. Однако, для определенности, я буду рассматривать все примеры на базе Apache. Если у вас не установлен web-сервер, то следующий пункт для вас, иначе же — вы волны его просто пролистать.

Установка Apache


Для установки Apache необходимо выполнить несколько простых команд. Начнем с установки самого web-сервера и необходимого для удаленного управления rTorrent модуля scgi:

# aptitude install apache2 libapache2-mod-scgi

Задаем настройки модуля в файле /etc/apache2/httpd.conf:

SCGIMount /RPC2 127.0.0.1:5000

и включаем его:

# a2enmod scgi

Далее, устанавливаем PHP:

# aptitude install php5 php5-common libapache2-mod-php5 php5-curl

и перезагружаем Apache:

# apache2ctl restart

После установки Apache переходим к рассмотрению различных web-интерфейсов к rTorrent.

wTorrent


Для своей работы wTorrent требует базу данных sqlite. Установим ее:

# aptitude install sqlite3 php5-sqlite # apache2ctl restart

Теперь загружаем непосредственно сам wTorrent:

# cd /var/www/
# svn co svn://wtorrent-project.org/repos/trunk/wtorrent/

Задаем права доступа для web-сервера:

# chown -R www-data:www-data ./wtorrent/

Далее направляем браузер по адресу http://<ваш IP адрес>/wtorrent/install.php и настраиваем аналогично этому скриншоту:

wtorrent install
(Кликни для увеличения)

Обязательно, в целях безопасности, удаляем файл install.php:

# rm wtorrent/install.php

А теперь можно и оценить результат перейдя по адресу
http://<ваш IP адрес>/wtorrent/:

image
(Кликни для увеличения)

ruTorrent


Для настройки ruTorrent скачаем последнюю версию из SVN:

# cd /var/www/ # svn checkout http://rutorrent.googlecode.com/svn/trunk/rutorrent

И зададим права доступа для web-сервера:

# chown -R www-data:www-data ./rutorrent/

Теперь чтобы открыть только что установленный ruTorrent нужно направить браузер по адресу http://<ваш IP адрес>/rutorrent/. И вот как он выглядит:

ruTorrent
(Кликни для увеличения)

ruTorrent
(Кликни для увеличения)

Так же не могу не отметить что под ruTorrent существует множество полезных плагинов заметно расширяющих стандартные возможности. Так, с помощью плагинов можно реализовать обработку RSS лент, учет трафика, ограничение скоростей по расписанию и многое другое. Полный список плагинов находится здесь. Я же покажу процесс установки плагина на примере Tracklabels который будет автоматически добавлять метки в зависимости от трекера закачки.

# cd /var/www/rutorrent/plugins/ # svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/tracklabels # chown -R www-data:www-data /var/www/rutorrent/plugins/

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

image
(Кликни для увеличения)

И еще одной, ну просто восхитительной, задумкой блеснул ruTorrent. А именно, в нем появляются зачатки многопользовательской работы где каждому человеку привязан свой экземпляр torrent клиента со своими собственными, ни от чего не зависящими настройками и ограничениями (к примеру по скорости). Более детально об этом можно прочитать по следующей ссылке:
forums.rutorrent.org/index.php?topic=87.0

Другие web-интерфейсы и программы для удаленного управления


На описанных мною web-интерфейсах список вовсе не заканчивается. Их не так уж и мало создано и разрабатывается. Список самых популярных можно посмотреть на официальном сайте rTorretn'а: libtorrent.rakshasa.no/wiki/UtilsList

И снова об автоматизации загрузок


Не забываю снова и снова напомнишь о такой удобной штуке как автоматизация загрузок ваших любимых сериалов с RSS лент различных трекеров. И несмотря на то что описанные выше web-интерфейсы имеют либо встроенные средства для обработки RSS лент (wTorrent), либо расширяются соответствующими плагинами (ruTorrent) этих средств, к сожалению, не всегда хватает. Более детально ниже:
  • Я уже как-то писал на эту тему вот тут (на примере LostFilm'a) и вот тут (на примере Кинозала). Оба решения реализованы в виде shell команд и основаны на grep, wget, curl;

  • Кроме того, еще один способ автоматизации с помощью FlexGet описывал Alukar вот тут;

  • И еще один вариант обработки RSS лент с помощью Yahoo Pipes рассмотрен хаброчеловеком AmoN вот в этом посте.
Так же помощниками в этом вопросе могут стать следующие два замечательных сервиса, уже описанные на Хабре: tvfёdor и Kinobaza.tv.

Тюнинг rTorrent при больших нагрузках


Про более тонкие настройки rTorrent при больших нагрузках можно прочитать как на официальном сайте, так и в комментариях пользователей:
  • Совет по использованию памяти от WoZ