Skip to content

Instantly share code, notes, and snippets.

@pboehm
Last active December 10, 2015 11:29
Show Gist options
  • Save pboehm/4428237 to your computer and use it in GitHub Desktop.
Save pboehm/4428237 to your computer and use it in GitHub Desktop.
working ,mediatomb config running on raspbian, you can update the import.js file with a different import structure
<?xml version="1.0" encoding="UTF-8"?>
<config version="2" xmlns="http://mediatomb.cc/config/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/2 http://mediatomb.cc/config/2.xsd">
<server>
<ui enabled="yes" show-tooltips="yes">
<accounts enabled="no" session-timeout="30">
<account user="mediatomb" password="mediatomb"/>
</accounts>
</ui>
<name>MediaTomb RPi</name>
<udn>uuid:d088039e-b1e2-4ab4-84da-9f6a0660eb03</udn>
<home>/var/lib/mediatomb</home>
<webroot>/usr/share/mediatomb/web</webroot>
<storage caching="yes">
<sqlite3 enabled="yes">
<database-file>mediatomb.db</database-file>
</sqlite3>
<mysql enabled="no">
<host>localhost</host>
<username>mediatomb</username>
<database>mediatomb</database>
</mysql>
</storage>
<pc-directory upnp-hide="yes"/>
<protocolInfo extend="yes"/>
<extended-runtime-options>
<ffmpegthumbnailer enabled="yes">
<thumbnail-size>256</thumbnail-size>
<seek-percentage>5</seek-percentage>
<filmstrip-overlay>yes</filmstrip-overlay>
<workaround-bugs>no</workaround-bugs>
</ffmpegthumbnailer>
<mark-played-items enabled="yes" suppress-cds-updates="yes">
<string mode="prepend">*</string>
<mark>
<content>video</content>
</mark>
</mark-played-items>
</extended-runtime-options>
</server>
<import hidden-files="no">
<scripting script-charset="UTF-8">
<common-script>/usr/share/mediatomb/js/common.js</common-script>
<playlist-script>/usr/share/mediatomb/js/playlists.js</playlist-script>
<virtual-layout type="js">
<import-script>/usr/share/mediatomb/js/import.js</import-script>
<dvd-script>/usr/share/mediatomb/js/import-dvd.js</dvd-script>
</virtual-layout>
</scripting>
<filesystem-charset>UTF-8</filesystem-charset>
<metadata-charset>UTF-8</metadata-charset>
<playlist-charset>UTF-8</playlist-charset>
<mappings>
<extension-mimetype ignore-unknown="no">
<map from="mp3" to="audio/mpeg"/>
<map from="ogg" to="application/ogg"/>
<map from="asf" to="video/x-ms-asf"/>
<map from="asx" to="video/x-ms-asf"/>
<map from="wma" to="audio/x-ms-wma"/>
<map from="wax" to="audio/x-ms-wax"/>
<map from="wmv" to="video/x-ms-wmv"/>
<map from="wvx" to="video/x-ms-wvx"/>
<map from="wm" to="video/x-ms-wm"/>
<map from="wmx" to="video/x-ms-wmx"/>
<map from="m3u" to="audio/x-mpegurl"/>
<map from="pls" to="audio/x-scpls"/>
<map from="flv" to="video/x-flv"/>
<map from="mkv" to="video/x-matroska"/>
<map from="mka" to="audio/x-matroska"/>
</extension-mimetype>
<mimetype-upnpclass>
<map from="audio/*" to="object.item.audioItem.musicTrack"/>
<map from="video/*" to="object.item.videoItem"/>
<map from="image/*" to="object.item.imageItem"/>
<map from="application/ogg" to="object.item.audioItem.musicTrack"/>
</mimetype-upnpclass>
<mimetype-contenttype>
<treat mimetype="audio/mpeg" as="mp3"/>
<treat mimetype="application/ogg" as="ogg"/>
<treat mimetype="audio/x-flac" as="flac"/>
<treat mimetype="image/jpeg" as="jpg"/>
<treat mimetype="audio/x-mpegurl" as="playlist"/>
<treat mimetype="audio/x-scpls" as="playlist"/>
<treat mimetype="audio/x-wav" as="pcm"/>
<treat mimetype="audio/L16" as="pcm"/>
<treat mimetype="video/x-msvideo" as="avi"/>
<treat mimetype="video/mp4" as="mp4"/>
<treat mimetype="audio/mp4" as="mp4"/>
<treat mimetype="application/x-iso9660" as="dvd"/>
<treat mimetype="application/x-iso9660-image" as="dvd"/>
<treat mimetype="video/x-matroska" as="mkv"/>
<treat mimetype="audio/x-matroska" as="mka"/>
</mimetype-contenttype>
</mappings>
<online-content><!-- Make sure to setup a transcoding profile for flv -->
<YouTube enabled="no" refresh="28800" update-at-start="no" purge-after="604800" racy-content="exclude" format="flv" hd="no">
<favorites user="mediatomb"/>
<standardfeed feed="most_viewed" time-range="today"/>
<playlists user="mediatomb"/>
<uploads user="mediatomb"/>
<standardfeed feed="recently_featured" time-range="today"/>
</YouTube>
<Weborama enabled="no" refresh="28800" update-at-start="no">
<playlist name="Active" type="playlist" mood="active"/>
<playlist name="Metal" type="playlist">
<filter>
<genres>metal</genres>
</filter>
</playlist>
</Weborama>
<AppleTrailers enabled="no" refresh="43200" update-at-start="no" resolution="640"/>
</online-content>
</import>
<transcoding enabled="no">
<mimetype-profile-mappings>
<transcode mimetype="video/x-flv" using="vlcmpeg"/>
<transcode mimetype="application/ogg" using="vlcmpeg"/>
<transcode mimetype="application/ogg" using="oggflac2raw"/>
<transcode mimetype="audio/x-flac" using="oggflac2raw"/>
</mimetype-profile-mappings>
<profiles>
<profile name="oggflac2raw" enabled="no" type="external">
<mimetype>audio/L16</mimetype>
<accept-url>no</accept-url>
<first-resource>yes</first-resource>
<accept-ogg-theora>no</accept-ogg-theora>
<agent command="ogg123" arguments="-d raw -o byteorder:big -f %out %in"/>
<buffer size="1048576" chunk-size="131072" fill-size="262144"/>
</profile>
<profile name="vlcmpeg" enabled="no" type="external">
<mimetype>video/mpeg</mimetype>
<accept-url>yes</accept-url>
<first-resource>yes</first-resource>
<accept-ogg-theora>yes</accept-ogg-theora>
<agent command="vlc" arguments="-I dummy %in --sout #transcode{venc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out} vlc:quit"/>
<buffer size="14400000" chunk-size="512000" fill-size="120000"/>
</profile>
</profiles>
</transcoding>
</config>
--- import.js.orig 2013-01-01 16:25:07.975186922 +0100
+++ import.js 2013-01-01 16:35:07.949460089 +0100
@@ -148,18 +148,15 @@
function addVideo(obj)
{
- var chain = new Array('Video', 'All Video');
+ var dir = obj.location.split('/');
+ var skip=3;
+ var chain = new Array();
+
+ if(skip <= dir.length-2)
+ for(i=skip;i<=(dir.length-2);i++)
+ chain.push(dir[i]);
+
addCdsObject(obj, createContainerChain(chain));
-
- var dir = getRootPath(object_root_path, obj.location);
-
- if (dir.length > 0)
- {
- chain = new Array('Video', 'Directories');
- chain = chain.concat(dir);
-
- addCdsObject(obj, createContainerChain(chain));
- }
}
function addWeborama(obj)
#!/usr/bin/env bash
set -e
MORE_RANDOM_FILE="/home/pi/more random .mkv"
test -f "$MORE_RANDOM_FILE" || touch "$MORE_RANDOM_FILE"
if [[ $1 == "monitor" ]]; then
$0
while (true) do
inotifywait -e CLOSE "$MORE_RANDOM_FILE"
$0
done
else
( find /home/pi/Serien/Die\ Simpsons/ -type f | shuf | tail -n 5 ;
echo "$MORE_RANDOM_FILE" ) | tee ~/Serien/Simpsons.m3u
fi
--- playlists.js.orig 2013-08-05 20:43:38.598472676 +0200
+++ playlists.js 2013-08-05 20:56:51.045849836 +0200
@@ -77,13 +77,13 @@
if (dot_index > 1)
playlist_title = playlist_title.substring(0, dot_index);
-var playlistChain = createContainerChain(new Array('Playlists', 'All Playlists', playlist_title));
+var playlistChain = createContainerChain(new Array('Random', playlist_title));
-var playlistDirChain;
+var playlistDirChain = undefined;
var last_path = getLastPath(playlist.location);
if (last_path)
- playlistDirChain = createContainerChain(new Array('Playlists', 'Directories', last_path, playlist_title));
+ // playlistDirChain = createContainerChain(new Array('Playlists', 'Directories', last_path, playlist_title));
if (type == '')
{
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment