YAMJ на Linux-системе - установка и настройка

Конфигурация железа:

Имеется домашняя сеть 192.168.0.0/24, в ней плеер PCH-A200, подключенный по ethernet, винта нет. Сервер под Ubuntu x64, дисковый массив 3х2гб в Raid0 под Btrfs. Контент льется через rtorrent под управлением rutorrent. Раздаются фильмы по протоколу NFS. Так же настроена Самба для доступа с виндовых машин, так как настроить NFS под виндой не удалось.

Описание путей:

/home/swasher/yamj - скрипты джукбокса /mnt/raid/video - видеоконтент /mnt/raid/yamj - собственно, сам каталог с выводом Yamj, сюда смотрит А200 чтобы увидеть "стенку".

Установка YAMJ

Используем сборку от Avalanche. Распаковывем ее в /home/swasher/yamj. Устанавливаем Java (я ставил open, не сановскую):

apt-get install openjdk-6-jre

Ubuntu Maverick 10.10: в оффициальном репозитории mediainfo нет, ставим используя репозиторий:

sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install mediainfo

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

chmod 755 MovieJukebox.sh

Редактируем recommended settings for 1G of memory:

java -Xms128m -Xmx512m -classpath .:./resources:./lib/* com.moviejukebox.MovieJukebox "$@"

recommended settings for 2G of memory:

java -Xms128m -Xmx1024m -classpath .:./resources:./lib/* com.moviejukebox.MovieJukebox "$@"

recommended settings for 3G of memory:

java -Xms128m -Xmx2049m -classpath .:./resources:./lib/* com.moviejukebox.MovieJukebox "$@"

Так же много где упоминается опция -Djava.awt.headless=true, которую рекомендуют указывать при ошибках явы, другие используют ее по умолчанию:

java -Djava.awt.headless=true -Xms128m -Xmx1024m -classpath .:./resources:./lib/* com.moviejukebox.MovieJukebox "$@"

У меня пока все работает без нее. Добавляем в /home/swasher/yamj/properties/moviejukebox.properties путь для mediainfo:

mediainfo.home=/usr/bin/

и куда сохранять вывод джукбокса

mjb.jukeboxRoot=/mnt/backup/testnas

library.xml приводим к следующему виду

<libraries>
   <library>
       <!--(откуда брать файла - локальный путь, если лежат локально с джукбоксом)-->
       <path>/mnt/backup/testnas</path>
       <!--(сетевой путь - как эту шару с фильмами видит плеер)-->
       <playerpath>file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/test/</playerpath>
       <exclude name="sample,tmp/,temp/,RECYCLE.BIN/"/>
       <description>PROBA</description>
       <prebuf></prebuf>
       <scrapeLibrary>true</scrapeLibrary>
  </library>
</libraries>

Запускаем

sudo ./MovieJukebox.sh library.xml

Работа YAMJ с несколькими дисками.

Настроим систему таким образом, чтобы на NMT имелось несколько сетевых шар, в нашем примере Tvshow и Movies, и каждая из них имела свою стенку. Поступим следующим образом - создадим несколько файлов library.xml для каждой стенки, а запускать скрипт будем с параметром "-о" и указывать путь сохранения файлов. Создадим xml файлы: library_video.xml

<libraries>
   <library>
    <path>/mnt/raid/video</path>
    <playerpath>file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/Movies</playerpath>
    <exclude name="sample,tmp/,temp/,RECYCLE.BIN/"/>
    <description>Swasher Movie </description>
    <prebuf></prebuf>
    <scrapeLibrary>true</scrapeLibrary>
   </library>
</libraries>

library_tvshow.xml

<libraries>
    <library>
        <path>/mnt/raid/tvshow</path>
        <playerpath>file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/TVshow</playerpath>
        <exclude name="sample,tmp/,temp/,RECYCLE.BIN/"/>
        <description>Swasher TVshow</description>
        <prebuf></prebuf>
        <scrapeLibrary>true</scrapeLibrary>
    </library>
</libraries>

Для удобства запуска создадим shell скрипт:

#!/bin/sh
./MovieJukebox.sh -o /mnt/raid/video -c library_video.xml
./MovieJukebox.sh -o /mnt/raid/tvshow -c library_tvshow.xml

Этот скрипт последовательно запускает Джукбокс сначала для фильмов в папке /mnt/raid/video, которую видно на NMT через шару video, складывает в эту же папку свой вывод, - это описано в library, а потом то же повторяет для папки /mnt/raid/tvshow с сериалами.

Настройка нераспознанных фильмов

В случае, если видео не распознается по названию, используем NFO файлы. Стандартный NFO для кинофильма выглядит так:

<movie>
<thumb>http://st.kinopoisk.ru/im/poster/1/1/6/kinopoisk.ru-Brothers-1166032.jpg</thumb>
<id moviedb="kinopoisk">253761</id>
</movie>

В нем мы указываем, откуда тянуть картинку (это опционально, но я выбираю покрасивше), и индекс фильма на кинопоиске. Стандартный YAMJ нуждается в настройке для работы с русскоязычними ресурсами, в сборке от avalanch это уже настроено. У меня возникла странная трабла с файлами NFO, подозреваю что Midnight Commander их как-менял по своему разумению. Поэтому я использовал расширение nf, для чего добавил в moviejukebox.properties строчку filename.nfo.extensions=nf Важно понимать, как должен называться NFO файл. Общее правило таково - если фильм состоит только из файлов - то nfo мы называем как файл. Это чаще всего относится к фильмам в mkv или avi. Например:

/mnt/raid/video/Безудержная/Abandoned [BD-Remux].nfo
/mnt/raid/video/Безудержная/Abandoned [BD-Remux].mkv

Если же фильм состоит из папок, то nfo должен называться, как папка уровнем выше. Это фильмы в DVD или Bluray формате. Например:

/mnt/raid/video/Оттепель/The_Thaw/BDMV/...
/mnt/raid/video/Оттепель/The_Thaw/The_Thaw.nfo

Сериалы

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

House.s01e01.Pilot.avi
Chuck S01xE01.avi

Далее, обязательно, чтобы сериал был на сайте http://thetvdb.com. Именно оттуда тянется инфа. Насколько я понимаю, других вариантов на сегодняшний день нет, только заполнять руками NFO. Если сериал не определился по именам файлов, то ложим в корень файл \<папка с сериалом>.nfo, где пишем:

<tvshow>
    <id>73255</id>
</tvshow>

где 73255 - код на thetvdb.com

Сеты

Сеты предназначены для объеденения нескольких фильмов в один набор, например всех частей "Крепкого орешка" или 4-ре части BBC: Планета Земля. Для этого в каждом фильме создаем nfo-файл:

<movie>
<thumb>http://st.kinopoisk.ru/im/poster/7/2/9/kinopoisk.ru-Planet-Earth-729440.jpg</thumb>
<id moviedb="kinopoisk">279548</id>
<sets>
        <set order="1">Планета Земля</set>
</sets>
</movie>

Вместо еденички, соответственно, ставим номер фильма в сете. Есть так же небольшой трюк, позволяющий установить кастомную обложку на сет. Для этого рядом с nfo-файлом следует поместить jpg, назвав его следующим образом: Set_\<set name>_1.jpg, для нашего примера будет Set_Планета Земля_1.jpg. Для чего тут _1, я не знаю, но работает.

Тонкая настройка

Если надо как-то пометить группы фильмов, то сделать это можно через жанры, создав свой. Это делается добавление строчки в NFO:

<movie>
<thumb>http://st.kinopoisk.ru/im/poster/1/1/6/kinopoisk.ru-Brothers-1166032.jpg</thumb>
<id moviedb="kinopoisk">253761</id>
<genre>Новый жанр</genre>
</movie>

Но просто так жанр не добавится, надо поменять настройку кинопоиска в moviejukebox.properties

kinopoisk.NFOpriority=true

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

Comments !

blogroll

social