Skip to content

Instantly share code, notes, and snippets.

@lucaswilric
Created November 2, 2013 02:42
Show Gist options
  • Save lucaswilric/7274869 to your computer and use it in GitHub Desktop.
Save lucaswilric/7274869 to your computer and use it in GitHub Desktop.
MediaTomb config & import script
<?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"><!--
Read /usr/share/doc/mediatomb-common/README.gz section 6 for more
information on creating and using config.xml configration files.
-->
<server>
<ui enabled="yes" show-tooltips="yes">
<accounts enabled="no" session-timeout="30">
<account user="mediatomb" password="mediatomb"/>
</accounts>
</ui>
<name>MediaTomb</name>
<udn>uuid:b6dc2eae-9405-4292-adda-345d10a399d9</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>
<protocolInfo extend="no"/><!-- For PS3 support change to "yes" --><!--
Uncomment the lines below to get rid of jerky avi playback on the
DSM320 or to enable subtitles support on the DSM units
--><!--
<custom-http-headers>
<add header="X-User-Agent: redsonic"/>
</custom-http-headers>
<manufacturerURL>redsonic.com</manufacturerURL>
<modelNumber>105</modelNumber>
--><!-- Uncomment the line below if you have a Telegent TG100 --><!--
<upnp-string-limit>101</upnp-string-limit>
-->
<extended-runtime-options>
<ffmpegthumbnailer enabled="yes">
<thumbnail-size>128</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-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>
<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"/><!-- Uncomment the line below for PS3 divx support --><!-- <map from="avi" to="video/divx"/> --><!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 --><!-- <map from="avi" to="video/avi"/> -->
</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"j -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>
function addAudio(obj)
{
var desc = '';
var artist_full;
var album_full;
// first gather data
var title = obj.meta[M_TITLE];
if (!title) title = obj.title;
var artist = obj.meta[M_ARTIST];
if (!artist)
{
artist = 'Unknown';
artist_full = null;
}
else
{
artist_full = artist;
desc = artist;
}
var album = obj.meta[M_ALBUM];
if (!album)
{
album = 'Unknown';
album_full = null;
}
else
{
desc = desc + ', ' + album;
album_full = album;
}
if (desc)
desc = desc + ', ';
desc = desc + title;
var date = obj.meta[M_DATE];
if (!date)
{
date = 'Unknown';
}
else
{
date = getYear(date);
desc = desc + ', ' + date;
}
var genre = obj.meta[M_GENRE];
if (!genre)
{
genre = 'Unknown';
}
else
{
desc = desc + ', ' + genre;
}
var description = obj.meta[M_DESCRIPTION];
if (!description)
{
obj.meta[M_DESCRIPTION] = desc;
}
// uncomment this if you want to have track numbers in front of the title
// in album view
/*
var track = obj.meta[M_TRACKNUMBER];
if (!track)
track = '';
else
{
if (track.length == 1)
{
track = '0' + track;
}
track = track + ' ';
}
*/
// comment the following line out if you uncomment the stuff above :)
var track = '';
var chain = new Array('Audio', 'All Audio');
obj.title = title;
addCdsObject(obj, createContainerChain(chain));
chain = new Array('Audio', 'Artists', artist, 'All Songs');
addCdsObject(obj, createContainerChain(chain));
chain = new Array('Audio', 'All - full name');
var temp = '';
if (artist_full)
temp = artist_full;
if (album_full)
temp = temp + ' - ' + album_full + ' - ';
else
temp = temp + ' - ';
obj.title = temp + title;
addCdsObject(obj, createContainerChain(chain));
chain = new Array('Audio', 'Artists', artist, 'All - full name');
addCdsObject(obj, createContainerChain(chain));
chain = new Array('Audio', 'Artists', artist, album);
obj.title = track + title;
addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER_MUSIC_ALBUM);
chain = new Array('Audio', 'Albums', album);
obj.title = track + title;
addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER_MUSIC_ALBUM);
chain = new Array('Audio', 'Genres', genre);
addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER_MUSIC_GENRE);
chain = new Array('Audio', 'Year', date);
addCdsObject(obj, createContainerChain(chain));
}
function addVideo(obj)
{
if (obj.location.match(/\/Thumbs\.db$/) != null) return;
addCdsObject(obj, createContainerChain(new Array('Video', 'All Video')));
var chain = new Array('Video'), dbDirs = new Array(), isTv = false, isMovie = false;
var fsDirs = (function(){var d = obj.location.split('/');d.pop();return d;})();
// Find the first directory that starts with "Movies" or "TV"
// and if it's a movie, just put it in the Movies directory.
// If it's a TV show, use the directory structure that's there,
// excluding everything before the 'TV' directory
for (var i = fsDirs.length-1; i > -1; i--) {
if (fsDirs[i].match(/^Movies/) != null) {
isMovie = true;
break;
}
else if (fsDirs[i].match(/^TV/) != null) {
isTv = true;
break;
}
else {
dbDirs.push(fsDirs[i]);
}
}
chain = isTv ? chain.concat('TV Shows').concat(dbDirs.reverse()) : isMovie ? chain.concat('Movies') : chain.concat('Other Video');
addCdsObject(obj, createContainerChain(chain));
}
function addVideo_old(obj)
{
//var chain = new Array('Video', 'All Video');
var chain = new Array('Video');
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)
{
var req_name = obj.aux[WEBORAMA_AUXDATA_REQUEST_NAME];
if (req_name)
{
var chain = new Array('Online Services', 'Weborama', req_name);
addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_PLAYLIST_CONTAINER);
}
}
function addImage(obj)
{
var chain = new Array('Photos', 'All Photos');
addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER);
var date = obj.meta[M_DATE];
if (date)
{
var dateParts = date.split('-');
if (dateParts.length > 1)
{
var year = dateParts[0];
var month = dateParts[1];
chain = new Array('Photos', 'Year', year, month);
addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER);
}
chain = new Array('Photos', 'Date', date);
addCdsObject(obj, createContainerChain(chain), UPNP_CLASS_CONTAINER);
}
var dir = getRootPath(object_root_path, obj.location);
if (dir.length > 0)
{
chain = new Array('Photos', 'Directories');
chain = chain.concat(dir);
addCdsObject(obj, createContainerChain(chain));
}
}
function addYouTube(obj)
{
var chain;
var temp = parseInt(obj.aux[YOUTUBE_AUXDATA_AVG_RATING], 10);
if (temp != Number.NaN)
{
temp = Math.round(temp);
if (temp > 3)
{
chain = new Array('Online Services', 'YouTube', 'Rating',
temp.toString());
addCdsObject(obj, createContainerChain(chain));
}
}
temp = obj.aux[YOUTUBE_AUXDATA_REQUEST];
if (temp)
{
var subName = (obj.aux[YOUTUBE_AUXDATA_SUBREQUEST_NAME]);
var feedName = (obj.aux[YOUTUBE_AUXDATA_FEED]);
var region = (obj.aux[YOUTUBE_AUXDATA_REGION]);
chain = new Array('Online Services', 'YouTube', temp);
if (subName)
chain.push(subName);
if (feedName)
chain.push(feedName);
if (region)
chain.push(region);
addCdsObject(obj, createContainerChain(chain));
}
}
function addTrailer(obj)
{
var chain;
chain = new Array('Online Services', 'Apple Trailers', 'All Trailers');
addCdsObject(obj, createContainerChain(chain));
var genre = obj.meta[M_GENRE];
if (genre)
{
genres = genre.split(', ');
for (var i = 0; i < genres.length; i++)
{
chain = new Array('Online Services', 'Apple Trailers', 'Genres',
genres[i]);
addCdsObject(obj, createContainerChain(chain));
}
}
var reldate = obj.meta[M_DATE];
if ((reldate) && (reldate.length >= 7))
{
chain = new Array('Online Services', 'Apple Trailers', 'Release Date',
reldate.slice(0, 7));
addCdsObject(obj, createContainerChain(chain));
}
var postdate = obj.aux[APPLE_TRAILERS_AUXDATA_POST_DATE];
if ((postdate) && (postdate.length >= 7))
{
chain = new Array('Online Services', 'Apple Trailers', 'Post Date',
postdate.slice(0, 7));
addCdsObject(obj, createContainerChain(chain));
}
}
// main script part
if (getPlaylistType(orig.mimetype) == '')
{
var arr = orig.mimetype.split('/');
var mime = arr[0];
// var obj = copyObject(orig);
var obj = orig;
obj.refID = orig.id;
if (mime == 'audio')
{
if (obj.onlineservice == ONLINE_SERVICE_WEBORAMA)
addWeborama(obj);
else
addAudio(obj);
}
if (mime == 'video')
{
if (obj.onlineservice == ONLINE_SERVICE_YOUTUBE)
addYouTube(obj);
else if (obj.onlineservice == ONLINE_SERVICE_APPLE_TRAILERS)
addTrailer(obj);
else
addVideo(obj);
}
if (mime == 'image')
{
addImage(obj);
}
if (orig.mimetype == 'application/ogg')
{
if (orig.theora == 1)
addVideo(obj);
else
addAudio(obj);
}
}
2013-11-02 13:17:23 INFO: Loading configuration from: /etc/mediatomb/config_js.xml
2013-11-02 13:17:23 INFO: Checking configuration...
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/tmpdir using default value: /tmp/
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/servedir using default value:
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/storage/sqlite3/synchronous using default value: off
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/storage/sqlite3/on-error using default value: restore
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/storage/sqlite3/backup/attribute::enabled using default value: no
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/storage/sqlite3/backup/attribute::interval using default value: 600
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/ui/attribute::poll-when-idle using default value: no
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/ui/attribute::poll-interval using default value: 2
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/ui/items-per-page/attribute::default using default value: 25
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/mappings/extension-mimetype/attribute::case-sensitive using default value: no
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:1365] validate(): received UTF-8 from nl_langinfo
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/filesystem-charset using default value: UTF-8
2013-11-02 13:17:23 INFO: Setting filesystem import charset to UTF-8
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/metadata-charset using default value: UTF-8
2013-11-02 13:17:23 INFO: Setting metadata import charset to UTF-8
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/playlist-charset using default value: UTF-8
2013-11-02 13:17:23 INFO: Setting playlist charset to UTF-8
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/pc-directory/attribute::upnp-hide using default value: no
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/interface using default value:
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/ip using default value:
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/bookmark using default value: mediatomb.html
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/modelName using default value: MediaTomb
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/modelDescription using default value: Free UPnP AV MediaServer, GNU GPL
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/modelNumber using default value: 0.12.1
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/serialNumber using default value: 1
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/manufacturerURL using default value: http://mediatomb.cc/
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/presentationURL using default value:
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/presentationURL/attribute::append-to using default value: none
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/upnp-string-limit using default value: -1
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/scripting/playlist-script/attribute::create-link using default value: yes
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/port using default value: 0
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/alive using default value: 1800
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/autoscan/attribute::use-inotify using default value: auto
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/library-options/libexif/auxdata using default value:
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/library-options/id3/auxdata using default value:
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /server/extended-runtime-options/ffmpegthumbnailer/image-quality using default value: 8
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2371] getOption(): Config: option not found: /import/magic-file using default value:
2013-11-02 13:17:23 WARNING: You enabled the YouTube feature, which allows you
to watch YouTube videos on your UPnP device!
Please check http://www.youtube.com/t/terms
By using this feature you may be violating YouTube
service terms and conditions!
2013-11-02 13:17:23 INFO: Configuration check succeeded.
2013-11-02 13:17:23 DEBUG: [../src/config_manager.cc:2273] validate(): Config file dump after validation:
<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"><!--
Read /usr/share/doc/mediatomb-common/README.gz section 6 for more
information on creating and using config.xml configration files.
-->
<server>
<ui enabled="yes" show-tooltips="yes" poll-when-idle="no" poll-interval="2">
<accounts enabled="no" session-timeout="30">
<account user="mediatomb" password="mediatomb"/>
</accounts>
<items-per-page default="25"><option>10</option><option>25</option><option>50</option><option>100</option></items-per-page></ui>
<name>MediaTomb</name>
<udn>uuid:b6dc2eae-9405-4292-adda-345d10a399d9</udn>
<home>/var/lib/mediatomb</home>
<webroot>/usr/share/mediatomb/web</webroot>
<storage caching="yes">
<sqlite3 enabled="yes">
<database-file>/var/lib/mediatomb/mediatomb.db</database-file>
<synchronous>off</synchronous><on-error>restore</on-error><backup enabled="no" interval="600"/></sqlite3>
<mysql enabled="no">
<host>localhost</host>
<username>mediatomb</username>
<database>mediatomb</database>
</mysql>
</storage>
<protocolInfo extend="no"/><!-- For PS3 support change to "yes" --><!--
Uncomment the lines below to get rid of jerky avi playback on the
DSM320 or to enable subtitles support on the DSM units
--><!--
<custom-http-headers>
<add header="X-User-Agent: redsonic"/>
</custom-http-headers>
<manufacturerURL>redsonic.com</manufacturerURL>
<modelNumber>105</modelNumber>
--><!-- Uncomment the line below if you have a Telegent TG100 --><!--
<upnp-string-limit>101</upnp-string-limit>
-->
<extended-runtime-options>
<ffmpegthumbnailer enabled="yes">
<thumbnail-size>128</thumbnail-size>
<seek-percentage>5</seek-percentage>
<filmstrip-overlay>yes</filmstrip-overlay>
<workaround-bugs>no</workaround-bugs>
<image-quality>8</image-quality></ffmpegthumbnailer>
<mark-played-items enabled="yes" suppress-cds-updates="yes">
<string mode="prepend">*</string>
</mark-played-items>
</extended-runtime-options>
<tmpdir>/tmp/</tmpdir><servedir></servedir><pc-directory upnp-hide="no"/><interface></interface><ip></ip><bookmark>mediatomb.html</bookmark><modelName>MediaTomb</modelName><modelDescription>Free UPnP AV MediaServer, GNU GPL</modelDescription><modelNumber>0.12.1</modelNumber><serialNumber>1</serialNumber><manufacturerURL>http://mediatomb.cc/</manufacturerURL><presentationURL append-to="none"></presentationURL><upnp-string-limit>-1</upnp-string-limit><port>0</port><alive>1800</alive></server>
<import hidden-files="no">
<scripting script-charset="UTF-8">
<common-script>/usr/share/mediatomb/js/common.js</common-script>
<playlist-script create-link="yes">/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>
<mappings>
<extension-mimetype ignore-unknown="no" case-sensitive="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"/><!-- Uncomment the line below for PS3 divx support --><!-- <map from="avi" to="video/divx"/> --><!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 --><!-- <map from="avi" to="video/avi"/> -->
</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>
<filesystem-charset>UTF-8</filesystem-charset><metadata-charset>UTF-8</metadata-charset><playlist-charset>UTF-8</playlist-charset><autoscan use-inotify="auto"/><library-options><libexif><auxdata></auxdata></libexif><id3><auxdata></auxdata></id3></library-options><magic-file></magic-file></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>
2013-11-02 13:17:23 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 0 -> 1
2013-11-02 13:17:23 DEBUG: [../src/zmmf/object_stack.h:54] ~ObjectStack(): releasing!
2013-11-02 13:17:23 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 1 -> 2
2013-11-02 13:17:23 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 2 -> 3
2013-11-02 13:17:23 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 3 -> 4
2013-11-02 13:17:23 DEBUG: [../src/server.cc:118] upnp_init(): start
2013-11-02 13:17:23 DEBUG: [../src/storage/sqlite3/sqlite3_storage.cc:190] init(): db_version: 3
2013-11-02 13:17:23 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 4 -> 5
2013-11-02 13:17:23 INFO: Initialized port: 9000
2013-11-02 13:17:23 INFO: Server bound to: 192.168.0.200
2013-11-02 13:17:23 DEBUG: [../src/server.cc:203] upnp_init(): webroot: /usr/share/mediatomb/web
2013-11-02 13:17:23 DEBUG: [../src/upnp_xml.cc:200] UpnpXML_RenderDeviceDescription(): start
2013-11-02 13:17:24 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 5 -> 6
2013-11-02 13:17:24 DEBUG: [../src/storage/sql_storage.cc:1815] updateAutoscanPersistentList(): setting persistent autoscans untouched - scanmode: timed;
2013-11-02 13:17:24 DEBUG: [../src/storage/sql_storage.cc:1826] updateAutoscanPersistentList(): updating/adding persistent autoscans (count: 0)
2013-11-02 13:17:24 DEBUG: [../src/storage/sql_storage.cc:1815] updateAutoscanPersistentList(): setting persistent autoscans untouched - scanmode: inotify;
2013-11-02 13:17:24 DEBUG: [../src/storage/sql_storage.cc:1826] updateAutoscanPersistentList(): updating/adding persistent autoscans (count: 0)
2013-11-02 13:17:24 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 6 -> 7
2013-11-02 13:17:24 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 7 -> 8
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:65] AutoscanInotify(): Max watches on the system: 8192
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:90] init(): starting inotify thread...
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:347] monitor(): ---> INCOMING REQUEST TO MONITOR [/mnt/foo/TV Shows]
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:347] monitor(): ---> INCOMING REQUEST TO MONITOR [/mnt/bar/TV Shows]
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:347] monitor(): ---> INCOMING REQUEST TO MONITOR [/mnt/bar/Movies]
2013-11-02 13:17:24 INFO: MediaTomb Web UI can be reached by following this link:
2013-11-02 13:17:24 INFO: http://192.168.0.200:9000/
2013-11-02 13:17:24 DEBUG: [../src/server.cc:311] upnp_init(): end
2013-11-02 13:17:24 DEBUG: [../src/timer.cc:67] triggerWait(): triggerWait. - 0 subscriber(s)
2013-11-02 13:17:24 DEBUG: [../src/timer.cc:98] triggerWait(): nothing to do, sleeping...
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:128] staticThreadProc(): started inotify thread.
2013-11-02 13:17:24 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:203] threadProc(): adding recursive watch: /mnt/foo/TV Shows
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:376] watchPathForMoves(): adding move watch: /
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:376] watchPathForMoves(): adding move watch: /mnt
2013-11-02 13:17:24 DEBUG: [../src/autoscan_inotify.cc:376] watchPathForMoves(): adding move watch: /mnt/foo
... snip about 2500 lines of indexing crap ...
2013-11-02 13:17:38 DEBUG: [../src/content_manager.cc:747] _rescanDirectory(): start
2013-11-02 13:17:38 DEBUG: [../src/content_manager.cc:821] _rescanDirectory(): Rescanning location: /mnt/foo/TV Shows/Pioneer One
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1522] _recursiveRemove(): start
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1429] _removeObjects(): SELECT "a"."id","a"."persistent","o"."location" FROM "mt_autoscan" a JOIN "mt_cds_object" o ON "o"."id"="a"."obj_id" WHERE "o"."id" IN (119497,119498,119499)
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1434] _removeObjects(): relevant autoscans!
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1666] _recursiveRemove(): end
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1672] _purgeEmptyContainers(): start upnp: ,96041,94396,96044; ui:
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1710] _purgeEmptyContainers(): upnp-sql: SELECT "a"."id", COUNT("b"."parent_id"),"a"."parent_id","a"."flags" FROM "mt_cds_object" "a" LEFT JOIN "mt_cds_object" "b" ON "a"."id"="b"."parent_id" WHERE "a"."object_type"=1 AND "a"."id" IN ( 96041,94396,96044) GROUP BY a.id
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1783] _purgeEmptyContainers(): end; changedContainers (upnp): 94396,96041,96044
2013-11-02 13:17:38 DEBUG: [../src/storage/sql_storage.cc:1784] _purgeEmptyContainers(): end; changedContainers (ui):
2013-11-02 13:17:38 DEBUG: [../src/metadata/ffmpeg_handler.cc:276] fillMetadata(): Running ffmpeg handler on /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E01.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:191] addFfmpegResourceFields(): Added duration: 00:35:32.0
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:235] addFfmpegResourceFields(): Added resolution: 1280x720 pixel
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:248] addFfmpegResourceFields(): Added sample frequency: 48000 Hz
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:255] addFfmpegResourceFields(): Added number of audio channels: 2
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is -333
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","upnp_class","dc_title","resources","flags","location","location_hash","mime_type","parent_id","id") VALUES (2,'object.item.videoItem','Pioneer.One.S01E01.720p.x264-VODO.mkv','0~protocolInfo=http-get%3A%2A%3Avideo%2Fx-matroska%3A%2A&size=1172308607&duration=00%3A35%3A32%2E0&resolution=1280x720&sampleFrequency=48000&nrAudioChannels=2~~',1,'F/mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E01.720p.x264-VODO.mkv',556382427,'video/x-matroska',96041,120415)
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 96041
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 96041, signal: 0
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E01.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E01.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1303] addContainerChain(): received chain: /Video/All Video
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is 94396
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","ref_id","dc_title","flags","mime_type","parent_id","id") VALUES (2,120415,'Pioneer.One.S01E01.720p.x264-VODO.mkv',1,'video/x-matroska',94396,120416)
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 94396
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 94396, signal: 0
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E01.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E01.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1303] addContainerChain(): received chain: /Video/TV Shows/Pioneer One
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is 96044
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","ref_id","dc_title","flags","mime_type","parent_id","id") VALUES (2,120415,'Pioneer.One.S01E01.720p.x264-VODO.mkv',1,'video/x-matroska',96044,120417)
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 96044
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 96044, signal: 0
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1522] _recursiveRemove(): start
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1429] _removeObjects(): SELECT "a"."id","a"."persistent","o"."location" FROM "mt_autoscan" a JOIN "mt_cds_object" o ON "o"."id"="a"."obj_id" WHERE "o"."id" IN (119500,119501,119502)
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1434] _removeObjects(): relevant autoscans!
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1666] _recursiveRemove(): end
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1672] _purgeEmptyContainers(): start upnp: ,96041,94396,96044; ui:
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1710] _purgeEmptyContainers(): upnp-sql: SELECT "a"."id", COUNT("b"."parent_id"),"a"."parent_id","a"."flags" FROM "mt_cds_object" "a" LEFT JOIN "mt_cds_object" "b" ON "a"."id"="b"."parent_id" WHERE "a"."object_type"=1 AND "a"."id" IN ( 96041,94396,96044) GROUP BY a.id
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1783] _purgeEmptyContainers(): end; changedContainers (upnp): 94396,96041,96044
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1784] _purgeEmptyContainers(): end; changedContainers (ui):
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:276] fillMetadata(): Running ffmpeg handler on /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E02.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:237] threadProc(): sending updates...
2013-11-02 13:17:39 DEBUG: [../src/upnp_cds_subscriptions.cc:82] subscription_update(): start
2013-11-02 13:17:39 DEBUG: [../src/upnp_cds_subscriptions.cc:106] subscription_update(): end
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:264] threadProc(): updates sent.
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:191] addFfmpegResourceFields(): Added duration: 00:38:41.8
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:235] addFfmpegResourceFields(): Added resolution: 1280x720 pixel
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:248] addFfmpegResourceFields(): Added sample frequency: 48000 Hz
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:255] addFfmpegResourceFields(): Added number of audio channels: 2
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is -333
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","upnp_class","dc_title","resources","flags","location","location_hash","mime_type","parent_id","id") VALUES (2,'object.item.videoItem','Pioneer.One.S01E02.720p.x264-VODO.mkv','0~protocolInfo=http-get%3A%2A%3Avideo%2Fx-matroska%3A%2A&size=1173790774&duration=00%3A38%3A41%2E8&resolution=1280x720&sampleFrequency=48000&nrAudioChannels=2~~',1,'F/mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E02.720p.x264-VODO.mkv',4272161592,'video/x-matroska',96041,120418)
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 96041
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 96041, signal: 1
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:174] containerChanged(): signalling...
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:215] threadProc(): threadProc: sleeping for 1647 millis
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E02.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E02.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1303] addContainerChain(): received chain: /Video/All Video
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is 94396
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","ref_id","dc_title","flags","mime_type","parent_id","id") VALUES (2,120418,'Pioneer.One.S01E02.720p.x264-VODO.mkv',1,'video/x-matroska',94396,120419)
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 94396
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 94396, signal: 0
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E02.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E02.720p.x264-VODO.mkv
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1303] addContainerChain(): received chain: /Video/TV Shows/Pioneer One
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is 96044
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","ref_id","dc_title","flags","mime_type","parent_id","id") VALUES (2,120418,'Pioneer.One.S01E02.720p.x264-VODO.mkv',1,'video/x-matroska',96044,120420)
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 96044
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 96044, signal: 0
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1522] _recursiveRemove(): start
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1429] _removeObjects(): SELECT "a"."id","a"."persistent","o"."location" FROM "mt_autoscan" a JOIN "mt_cds_object" o ON "o"."id"="a"."obj_id" WHERE "o"."id" IN (119503,119504,119505)
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1434] _removeObjects(): relevant autoscans!
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1666] _recursiveRemove(): end
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1672] _purgeEmptyContainers(): start upnp: ,96041,94396,96044; ui:
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1710] _purgeEmptyContainers(): upnp-sql: SELECT "a"."id", COUNT("b"."parent_id"),"a"."parent_id","a"."flags" FROM "mt_cds_object" "a" LEFT JOIN "mt_cds_object" "b" ON "a"."id"="b"."parent_id" WHERE "a"."object_type"=1 AND "a"."id" IN ( 96041,94396,96044) GROUP BY a.id
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1783] _purgeEmptyContainers(): end; changedContainers (upnp): 94396,96041,96044
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:1784] _purgeEmptyContainers(): end; changedContainers (ui):
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:276] fillMetadata(): Running ffmpeg handler on /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E03.Xvid-VODO.avi
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:191] addFfmpegResourceFields(): Added duration: 00:31:46.3
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:201] addFfmpegResourceFields(): Added overall bitrate: 205925 kb/s
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:223] addFfmpegResourceFields(): FourCC: 44495658 = XVID
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:235] addFfmpegResourceFields(): Added resolution: 624x352 pixel
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:248] addFfmpegResourceFields(): Added sample frequency: 48000 Hz
2013-11-02 13:17:39 DEBUG: [../src/metadata/ffmpeg_handler.cc:255] addFfmpegResourceFields(): Added number of audio channels: 2
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is -333
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","upnp_class","dc_title","resources","flags","location","location_hash","mime_type","parent_id","id") VALUES (2,'object.item.videoItem','Pioneer.One.S01E03.Xvid-VODO.avi','0~protocolInfo=http-get%3A%2A%3Avideo%2Fx-msvideo%3A%2A&size=392560640&duration=00%3A31%3A46%2E3&bitrate=205925&resolution=624x352&sampleFrequency=48000&nrAudioChannels=2~~4cc=XVID',1,'F/mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E03.Xvid-VODO.avi',2980817655,'video/x-msvideo',96041,120421)
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 96041
2013-11-02 13:17:39 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:39 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 96041, signal: 0
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E03.Xvid-VODO.avi
2013-11-02 13:17:39 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E03.Xvid-VODO.avi
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1303] addContainerChain(): received chain: /Video/All Video
2013-11-02 13:17:39 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is 94396
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","ref_id","dc_title","flags","mime_type","parent_id","id") VALUES (2,120421,'Pioneer.One.S01E03.Xvid-VODO.avi',1,'video/x-msvideo',94396,120422)
2013-11-02 13:17:40 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 94396
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:40 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 94396, signal: 0
2013-11-02 13:17:40 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E03.Xvid-VODO.avi
2013-11-02 13:17:40 DEBUG: [../src/tools.cc:1059] normalizePath(): Normalizing path: /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E03.Xvid-VODO.avi
2013-11-02 13:17:40 DEBUG: [../src/content_manager.cc:1303] addContainerChain(): received chain: /Video/TV Shows/Pioneer One
2013-11-02 13:17:40 DEBUG: [../src/content_manager.cc:1258] addObject(): Adding: parent ID is 96044
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:494] addObject(): insert_query: INSERT INTO "mt_cds_object" ("object_type","ref_id","dc_title","flags","mime_type","parent_id","id") VALUES (2,120421,'Pioneer.One.S01E03.Xvid-VODO.avi',1,'video/x-msvideo',96044,120423)
2013-11-02 13:17:40 DEBUG: [../src/content_manager.cc:1264] addObject(): After adding: parent ID is 96044
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:2370] flushInsertBuffer(): flushing insert buffer (1 statements)
2013-11-02 13:17:40 DEBUG: [../src/update_manager.cc:155] containerChanged(): containerChanged. id: 96044, signal: 0
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1522] _recursiveRemove(): start
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1429] _removeObjects(): SELECT "a"."id","a"."persistent","o"."location" FROM "mt_autoscan" a JOIN "mt_cds_object" o ON "o"."id"="a"."obj_id" WHERE "o"."id" IN (119506,119507,119508)
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1434] _removeObjects(): relevant autoscans!
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1666] _recursiveRemove(): end
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1672] _purgeEmptyContainers(): start upnp: ,96041,94396,96044; ui:
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1710] _purgeEmptyContainers(): upnp-sql: SELECT "a"."id", COUNT("b"."parent_id"),"a"."parent_id","a"."flags" FROM "mt_cds_object" "a" LEFT JOIN "mt_cds_object" "b" ON "a"."id"="b"."parent_id" WHERE "a"."object_type"=1 AND "a"."id" IN ( 96041,94396,96044) GROUP BY a.id
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1783] _purgeEmptyContainers(): end; changedContainers (upnp): 94396,96041,96044
2013-11-02 13:17:40 DEBUG: [../src/storage/sql_storage.cc:1784] _purgeEmptyContainers(): end; changedContainers (ui):
2013-11-02 13:17:40 DEBUG: [../src/metadata/ffmpeg_handler.cc:276] fillMetadata(): Running ffmpeg handler on /mnt/foo/TV Shows/Pioneer One/Pioneer.One.S01E04.720p.x264-VODO.mkv
2013-11-02 13:17:40 DEBUG: [../src/web_callbacks.cc:72] create_request_handler(): Filename: /content/media/object_id/119962/res_id/0/ext/file.mkv, Path: (null)
2013-11-02 13:17:40 DEBUG: [../src/file_request_handler.cc:345] open(): start
2013-11-02 13:17:40 DEBUG: [../src/file_request_handler.cc:360] open(): full url (filename): /content/media/object_id/119962/res_id/0/ext/file.mkv, parameters: object_id/119962/res_id/0/ext/file.mkv
2013-11-02 13:17:40 DEBUG: [../src/file_request_handler.cc:370] open(): Opening media file with object id 119962
2013-11-02 13:17:40 DEBUG: [../src/file_request_handler.cc:506] open(): path: /mnt/foo/TV Shows/Better Off Ted/Better.Off.Ted.S01E01.720p.HDTV.x264-CTU/better.off.ted.s01e01.720p.hdtv.x264-ctu.mkv
2013-11-02 13:17:40 DEBUG: [../src/file_request_handler.cc:519] open(): fetching resource id 0
2013-11-02 13:17:40 DEBUG: [../src/file_request_handler.cc:671] open(): Adding content disposition header: Content-Disposition: attachment; filename="better.off.ted.s01e01.720p.hdtv.x264-ctu.mkv"
2013-11-02 13:17:40 DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 10 -> 11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment