Welcome! Log In Create A New Profile

Advanced

HOWTO: Streaming music from GoFlex Net/Dockstar to iPod Touch / iPhone / iPad via WiFi

Posted by Vlad 
HOWTO: Streaming music from GoFlex Net/Dockstar to iPod Touch / iPhone / iPad via WiFi
August 29, 2011 04:16PM
After having performed a brief search on this forum, I believe that many people who own a Dockstar or GoFlex are fully
unaware of the fact that it's very easy to stream your music from a GoFlex/Dockstar to an iOS device. So I'd like to explain how to do it.

In fact, to enable streaming you don't need stuff like AirPlay, AirVideo, iTunes Server etc. The magic words are UPnP and DLNA. What you basically have to do is setup a UPnP/DLNA server on your GoFlex/Dockstar and install a UPnP/DLNA client app on your iOS device. There are many UPnP/DLNA servers for Linux out there, but probably the most famous ones are Mediatomb and MiniDLNA. Both are quite good and capable to do a lot of stuff so it's perhaps a matter of taste which one you should choose. Personally, I started with Mediatomb but now I'm switching to MiniDLNA since I believe that it consumes slightly less resources. Anyway, I'll describe how to configure both servers. Which, of course, doesn't mean that you should also run both of them simultaneously. Just make up your mind now and follow the relevant part of this HOWTO.

In this HOWTO I assume that your music directory is located in /media/USB/music. Please be sure to edit the configuration files accordingly such that they point to your music directory. Also I'm using Debian Squeeze

Mediatomb
Installing Mediatomb is quite easy
su
apt-get install mediatomb-common mediatomb-daemon
etc/init.d/mediatomb stop
Now it's time to edit the mediatomb config file
nano /etc/mediatomb/config.xml
The most important line is
<directory location="/media/USB/music" mode="inotify" recursive="yes" hidden-files="no"/>
since it contains the path to your music directory. For convenience I post my own config.xml under this post. Although it might be too restrictive for your needs, you still can use it as a minimal working config. Mediatomb documentation is also very comprehensive so be sure to check it out
http://mediatomb.cc/pages/documentation_overview

It's important that you music directory is owned by the mediatomb account.
chown -R mediatomb:mediatomb /media/USB/music
Finally, to start mediatomb use
invoke-rc.d mediatomb start
You don't need to do it all the time, since by default mediatomb is automatically started after each reboot.

Mediatomb tricks:
  • After first start Mediatomb needs time to index your music. Don't try to stream music until mediatomb is finished indexing your stuff.
  • Sometimes after having added a lot of new music, mediatomb's indexing database doesn't get updated properly. In this case you should remove the old database and restart mediatomb
/etc/init.d/mediatomb stop
rm /var/lib/mediatomb/mediatomb.db
/etc/init.d/mediatomb start
  • Mediatomb seems to prefer ID3 v1 tags over ID3 v2 tags

MiniDLNA
Installing minidlna on Debian Squeeze is a bit more tricky since the minidlna package is not in the squeeze but in the wheezy repo. So we should enable the testing repo and install minidlna from there. Open
nano /etc/apt/preferences
and add the following
Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10
also open
nano /etc/apt/apt.conf
and add this line
APT::Default-Release "stable";
Finally open
nano /etc/apt/sources.list
and add this
deb http://ftp.de.debian.org/debian testing main contrib non-free
Now run
apt-get update
apt-get install -t testing minidlna 
etc/init.d/minidlna stop
Let's create a directory for minidlna's database
mkdir /var/cache/minidlna
chown minidlna:minidlna /var/cache/minidlna/
Now it's time to edit the minidlna's config file
nano /etc/minidlna.conf
For convenience I post my own minidlna.conf under this post. You can use it as a minimal working config.

It's important that you music directory is owned by the minidlna account.
chown -R minidlna:minidlna /media/USB/music
Finally, to start minidlna use
etc/init.d/minidlna start
You don't need to do it all the time, since by default minidlna is automatically started after each reboot.

MiniDLNA tricks:
  • After first start MiniDLNA needs time to index your music. Don't try to stream music until MiniDLNA is finished indexing your stuff.
  • Sometimes after having added a lot of new music, MiniDLNA's indexing database doesn't get updated properly. In this case you should remove the old database and restart MiniDLNA
/etc/init.d/minidlna stop
rm /var/cache/minidlna/files.db
/etc/init.d/minidlna start
  • MiniDLNA seems to prefer ID3 v2 tags over ID3 v1 tags

iOS
Now it's time to install suitable apps on your iOS device. There are pretty much interesting apps out there, just go to the AppStore and type "upnp" or "dlna" in the search bar. As far as free apps are concerned I'd recommend "SmartStor Fusion Stream DLNA" both for the iPad and the iPod Touch. Other free apps I got running were "Media Link Player Lite for iPad" (iPad), "EyeconTroller" (iPad and iPod Touch), Media Link Player Lite (iPod Touch) and "iMediaControl"(iPod Touch). The only paid app I bought and tested so far is "Media Link Player" which I use on my iPod Touch 2G. This app works really great and I can highly recommend it to anyone. I, however, don't know much about other paid apps, so you better try some yourself.
Re: HOWTO: Streaming music from GoFlex Net/Dockstar to iPod Touch / iPhone / iPad via WiFi
August 29, 2011 04:19PM
My config.xml for Mediatomb

<?xml version="1.0" encoding="UTF-8"?>
<config version="1" xmlns="http://mediatomb.cc/config/1"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://mediatomb.cc/config/1 http://mediatomb.cc/config/1.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="no" show-tooltips="yes">
<accounts enabled="no" session-timeout="30">
<account user="mediatomb" password="mediatomb"/>
</accounts>
</ui>
<name>MediaTomb</name>
<udn>uuid:79b66939-4de9-4dff-af50-69af60cef8a1</udn>
<home>/var/lib/mediatomb</home>
<webroot>/usr/share/mediatomb/web</webroot>
<pc-directory upnp-hide="yes"/>
<storage>
<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="no">
<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="no" 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="builtin">
<import-script>/usr/share/mediatomb/js/import.js</import-script>
<dvd-script>/usr/share/mediatomb/js/import-dvd.js</dvd-script>
</virtual-layout>
</scripting>
<autoscan use-inotify="auto">
<directory location="/media/USB/music" mode="inotify" recursive="yes" hidden-files="no"/>
</autoscan>
<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 -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>

My minidlna.conf for MiniDLNA

# port for HTTP (descriptions, SOAP, media transfer) traffic
port=8200

# network interfaces to serve, comma delimited
#network_interface=eth0

# set this to the directory you want scanned.
# * if have multiple directories, you can have multiple media_dir= lines
# * if you want to restrict a media_dir to a specific content type, you
#   can prepend the type, followed by a comma, to the directory:
#   + "A" for audio  (eg. media_dir=A,/home/jmaggard/Music)
#   + "V" for video  (eg. media_dir=V,/home/jmaggard/Videos)
#   + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
media_dir=A,/media/USB/music
# set this if you want to customize the name that shows up on your clients
#friendly_name=My DLNA Server

# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
db_dir=/var/cache/minidlna

# set this if you would like to specify the directory where you want MiniDLNA to store its log file
log_dir=/var/log

# this should be a list of file names to check for when searching for album art
# note: names should be delimited with a forward slash ("/")
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes

# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
enable_tivo=no

# set this to strictly adhere to DLNA standards.
# * This will allow server-side downscaling of very large JPEG images,
#   which may hurt JPEG serving performance on (at least) Sony DLNA products.
strict_dlna=no

# default presentation url is http address on port 80
#presentation_url=http://www.mylan/index.php

# notify interval in seconds. default is 895 seconds.
notify_interval=900

# serial and model number the daemon will report to clients
# in its XML description
serial=12345678
model_number=1

# use different container as root of the tree
# possible values:
#   + "." - use standard container (this is the default)
#   + "B" - "Browse Directory"
#   + "M" - "Music"
#   + "V" - "Video"
#   + "P" - "Pictures"
# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
#root_container=.
Vlad Wrote:
-------------------------------------------------------
> iOS
> Now it's time to install suitable apps on your iOS
> device. There are pretty much interesting apps out
> there, just go to the AppStore and type "upnp" or
> "dlna" in the search bar. As far as free apps are
> concerned I'd recommend "SmartStor Fusion Stream
> DLNA" both for the iPad and the iPod Touch. Other
> free apps I got running were "Media Link Player
> Lite for iPad" (iPad), "EyeconTroller" (iPad and
> iPod Touch), Media Link Player Lite (iPod Touch)
> and "iMediaControl"(iPod Touch). The only paid
> app I bought and tested so far is "Media Link
> Player" which I use on my iPod Touch 2G. This app
> works really great and I can highly recommend it
> to anyone. I, however, don't know much about other
> paid apps, so you better try some yourself.

Thanks for the great tutorial but I totaly disagree with you regarding the quality of the ios apps. They are all pretty much crap. Not only are most of the features disfunctional, for instance the search function in SmartStor Fusion Stream, even worse the UI is so ugly your eyes will bleed. I tested a lot of the apps you name here and much more: AirPlayer, Buzzplayer, GoodPlayer, PlugPlayer none of them are fully fuctional. There are many basic things which arent even useable. I dont get it ...
Re: HOWTO: Streaming music from GoFlex Net/Dockstar to iPod Touch / iPhone / iPad via WiFi
August 31, 2011 11:51AM
Well, it depends on what you consider to be basic functions. Since I know my music library very well, I usually just "zap" from song to song, meaning, that even "iMediaControl" would suit me fine. But as we know different people have different demands.

I mostly agree with you concerning "SmartStor Fusion Stream" but you must admit that it has quite a lot of functions for a completely free app. As I've already I said, I use the paid version of "Media Link Player" on my Touch 2G and MiniDLNA on the GoFlex. I'm quite content with it. The UI is slim, search and playlists work, playing music with screen off works too. Unfortunately, on the iOS platform you rarely get great stuff for free, in most cases one has to pay....

As far as AirPlayer, Buzzplayer, GoodPlayer and PlugPlayer are concerned, I intentionally didn't mention them, because those are more about streaming videos, not music. They are quite useless when streaming MP3s.
Tried to install mediatomb...
apt-get install mediatomb-common mediatomb-daemon

Reading package lists... 0%
....
Building dependency tree       


Reading state information... 0%

Reading state information... 0%

Reading state information... Done

You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 mediatomb-common : Depends: libavformat52 (>= 4:0.5.1-1) but it is not going to be installed or
                             libavformat-extra-52 (>= 4:0.5.1-1) but it is not installable
                    Depends: libavutil49 (>= 4:0.5.1-1) but it is not going to be installed or
                             libavutil-extra-49 (>= 4:0.5.1-1) but it is not installable
                    Depends: libexif12 but it is not going to be installed
                    Depends: libffmpegthumbnailer4 but it is not going to be installed
                    Depends: libmozjs2d (>= 1.9.1) but it is not going to be installed
                    Depends: libtag1c2a (>= 1.5) but it is not going to be installed
                    Depends: libjs-prototype but it is not going to be installed
 minidlna : Depends: libavformat52 (>= 4:0.5.1-1) but it is not going to be installed or
                     libavformat-extra-52 (>= 4:0.5.1-1) but it is not installable
            Depends: libexif12 but it is not going to be installed
            Depends: libid3tag0 (>= 0.15.1b) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

My sources.list has

deb http://ftp.us.debian.org/debian squeeze main contrib non-free
deb http://www.dev-eth0.de/dockstar/ squeeze main
# webmin repository
deb http://download.webmin.com/download/repository sarge contrib

Do I need to have add something to it?
Thanks.



Edited 1 time(s). Last edit at 02/07/2012 11:31PM by funtoy1001.
Re: HOWTO: Streaming music from GoFlex Net/Dockstar to iPod Touch / iPhone / iPad via WiFi
February 08, 2012 02:08AM
Did you try 'apt-get -f install' as suggested by the pakage manager?
Thanks. Actually, I did the "'apt-get -f install" before I posted. Anyway, I have it running now after I did whole bunch of "apt-get clear", "apt-get autoremove"... I guess I have a broken install before and I didn't clean it up.
Re: HOWTO: Streaming music from GoFlex Net/Dockstar to iPod Touch / iPhone / iPad via WiFi
February 11, 2012 04:27PM
By the way, it's also possible to listen to the streamed music using VLC (works great in Kubuntu 11.10)
http://superuser.com/questions/191736/how-do-i-connect-vlc-to-a-known-dlna-server

Oh and iMediaControl (free) now has a native iPad version.
I am running original kernel and I can't find apt-get command. Should I change kernel/ install additional packages
before I follow the process above?

bash-3.2# uname -a
Linux Pogoplug 2.6.22.18 #81 Tue Oct 19 16:05:00 PDT 2010 armv5tejl unknown
bash-3.2#
bash-3.2# echo $PATH
/usr/bin:/bin:/sbin
bash-3.2# apt-get
bash: apt-get: command not found
bash-3.2#
fyi PlugPlayer also works with foobar2000 uPnP component, so you can pull double duty with it ;)
It's also possible to stream tracks from LogiTechMediaServer (which is basically DLNA) installed on the GoFlexHome to an iPad (and possibly iPhone) and you don't need the LogiTech (crippled) iPad app installed either. I use WOON (http://www.woon-cloud.com/start-woon.html) which is a totally free (with no ads) app for the iPad that will play individual tracks or entire folders from your LogiTech server.

By the way, for anyone who may be interested, it's also possible to play LogiTechMedia tracks using MediaPlayer on Windows 7.



Edited 1 time(s). Last edit at 03/24/2013 01:55PM by maihoaomv.
Author:

Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: