masmu / pulseaudio-dlna

A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux
GNU General Public License v3.0
1.25k stars 162 forks source link

failed to start on arch (manjaro kde) #23

Closed bachy closed 9 years ago

bachy commented 9 years ago

hello,

here is what i have when i try to start pulseaudio-dlna

$ python pulseaudio_dlna
Traceback (most recent call last):
  File "/usr/lib/python3.4/runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.4/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "pulseaudio_dlna/__main__.py", line 52, in <module>
    import pulseaudio_dlna
ImportError: No module named 'pulseaudio_dlna'

i cloned the repos and cd pulseaudio-dlna i checked/installed all dependencies i tried to chmod +x all .py scripts i am not a python ninja any idea ? i would love to run pusleaudio-dlna on my arch lap-top (combined with a rpi Musicbox) if i succeed, it would be a great oportunity for me to learn how to build an arch package.

masmu commented 9 years ago

@bachy Hello

Try the following:

If that does not work. You can install it to your system.

masmu commented 9 years ago

@bachy What is your python version? As it seems your Python version is 3.4. This application needs python2.7. So check if there is a python2.7 binary on your system.

Then run: python2.7 pulseaudio_dlna/ from the project root.

bachy commented 9 years ago

@masmu thanks for your answer

you were right about python version, unfortunatly a ran the exacte same error with python2

$ python2 -V
Python 2.7.9
$ python2 pulseaudio_dlna
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/bach/Developer/PYTHON/pulseaudio-dlna/pulseaudio_dlna/__main__.py", line 52, in <module>
    import pulseaudio_dlna
ImportError: No module named pulseaudio_dlna

make dev worked with one error

$ make dev
sudo python2.7 setup.py develop
[sudo] password for bach: 
running develop
running egg_info
creating pulseaudio_dlna.egg-info
writing requirements to pulseaudio_dlna.egg-info/requires.txt
writing pulseaudio_dlna.egg-info/PKG-INFO
writing top-level names to pulseaudio_dlna.egg-info/top_level.txt
writing dependency_links to pulseaudio_dlna.egg-info/dependency_links.txt
writing entry points to pulseaudio_dlna.egg-info/entry_points.txt
writing manifest file 'pulseaudio_dlna.egg-info/SOURCES.txt'
reading manifest file 'pulseaudio_dlna.egg-info/SOURCES.txt'
writing manifest file 'pulseaudio_dlna.egg-info/SOURCES.txt'
running build_ext
Creating /usr/lib/python2.7/site-packages/pulseaudio-dlna.egg-link (link to .)
Adding pulseaudio-dlna 0.3.2 to easy-install.pth file
Installing pulseaudio-dlna script to /usr/bin

Installed /home/bach/Developer/PYTHON/pulseaudio-dlna
Processing dependencies for pulseaudio-dlna==0.3.2
Searching for BeautifulSoup>=3.2.1
Reading https://pypi.python.org/simple/BeautifulSoup/
Best match: BeautifulSoup 3.2.1
Downloading https://pypi.python.org/packages/source/B/BeautifulSoup/BeautifulSoup-3.2.1.tar.gz#md5=44656527ef3ac9874ac4d1c9f35f70ee
Processing BeautifulSoup-3.2.1.tar.gz
Writing /tmp/easy_install-F3Lxjl/BeautifulSoup-3.2.1/setup.cfg
Running BeautifulSoup-3.2.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-F3Lxjl/BeautifulSoup-3.2.1/egg-dist-tmp-GCaO21
zip_safe flag not set; analyzing archive contents...
/usr/lib/python2.7/site-packages/setuptools/command/bdist_egg.py:394: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  symbols = dict.fromkeys(iter_symbols(code))
Moving BeautifulSoup-3.2.1-py2.7.egg to /usr/lib/python2.7/site-packages
Adding BeautifulSoup 3.2.1 to easy-install.pth file

Installed /usr/lib/python2.7/site-packages/BeautifulSoup-3.2.1-py2.7.egg
Searching for setproctitle==1.1.8
Best match: setproctitle 1.1.8
Adding setproctitle 1.1.8 to easy-install.pth file

Using /usr/lib/python2.7/site-packages
Searching for requests==2.5.3
Best match: requests 2.5.3
Adding requests 2.5.3 to easy-install.pth file

Using /usr/lib/python2.7/site-packages
Searching for docopt==0.6.2
Best match: docopt 0.6.2
Adding docopt 0.6.2 to easy-install.pth file

Using /usr/lib/python2.7/site-packages
Finished processing dependencies for pulseaudio-dlna==0.3.2
sudo chown -R bach:bach pulseaudio_dlna.egg-info/
chown: groupe incorrect: « bach:bach »
Makefile:22 : la recette pour la cible « dev » a échouée
make: *** [dev] Erreur 1

i can now launch pulseaudio-dlna

$ pulseaudio-dlna
Using localhost: 192.168.0.115:8080
INFO:root:Discovery complete. You can now use your upnp devices!
There were no upnp devices found. Application terminates.

as you can see it found no devices, but i have 3 upnp/dlna devices on my local network (one openelec, one MusicBox, one other) each found and working with BuppleUpnp on android.

bachy commented 9 years ago

runing pulseaudio-dlna as root works better but still have errors

sudo pulseaudio-dlna
Using localhost: 192.168.0.115:8080
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.0.117
INFO:root:found upnp_device "<CoinedUpnpMediaRenderer name="MusicBox" short_name="musicbox" state="idle">"
INFO:root:Discovery complete. You can now use your upnp devices!
The dlna server could not bind to your specified port (8080). Perhaps this is already in use? Application terminates.
sudo pulseaudio-dlna --port 8888
Using localhost: 192.168.0.115:8888
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.0.117
INFO:root:found upnp_device "<CoinedUpnpMediaRenderer name="MusicBox" short_name="musicbox" state="idle">"
INFO:root:Discovery complete. You can now use your upnp devices!
ERROR:root:PulseAudio seems not to be running or pulseaudio dbus module could not be loaded.
masmu commented 9 years ago

It can't communicate with pulseaudio as root. So, try to rerun it a few times without root.

An output where the devices were found with the --debug flag would be nice. Even with root, this output could be useful.

What are the IPs of your devices? And can you paste an output of ifconfig?

bachy commented 9 years ago

ok i works i just played a track with banshee and relaunched pulseaudio-dlna, et voila !

does it means that we always have to first launch a play before pusleaudio-dlna ?

masmu commented 9 years ago

Whats about your network setup? All cable? One wifi? Wifi extenders?

masmu commented 9 years ago

No. The devices will be added after the startup of pulseaudio-dlna. Makes no difference if you had started bashee before or after that. You just have the switch to the output device.

Are your other devices being recognized now?

bachy commented 9 years ago

network setup

masmu commented 9 years ago

IPs of the devices and an output of ifconfig please :smile:

bachy commented 9 years ago

here is the output with the --debug flag http://pastebin.com/TBU61RjZ

bachy commented 9 years ago

i updated the devices list with ips

$ ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.115  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::76d4:35ff:fee8:7ca1  prefixlen 64  scopeid 0x20<link>
        ether 74:d4:35:e8:7c:a1  txqueuelen 1000  (Ethernet)
        RX packets 186863  bytes 158243642 (150.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 153891  bytes 44436075 (42.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 2459  bytes 18570128 (17.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2459  bytes 18570128 (17.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
masmu commented 9 years ago

I added a bit more debug code in the application.

Could you do a git pull in the project root folder to recieve those changes? Then please paste another --debug output.

I have added the following string: Recieved the following SSDP header: So, you did everything right, when this is in the new output.

bachy commented 9 years ago

here it is : http://pastebin.com/tvmReaHn by the way, thank you very much for helping me like this :)

bachy commented 9 years ago

hey sorry, i just checked my kodi and i had forgotten to check the "authorize control by upnp" parameter. I can now stream to it too :)

for the third device, forget it, it's a proprietary one, i don't need it.

thanks again @masmu !!

masmu commented 9 years ago

Your welcome. I like it when my stuff is acutally used and makes people happy :smile:

Glad we got that one too. The freebox thing is still missing, right? Is there a exact product name for that? I want to take a deeper look at that... freebox is a bit too general. Is it a TV?

bachy commented 9 years ago

here is the third devices, i hope i didn't make an error thinking it's compatible with upnp/dlna http://www.free.fr/adsl/freebox-revolution.html [edit] i rechecked and the freebox revolution is upnp/dlna compatible [/edit]

and suddenly launching with ```python2 pulseausio_dlna --port 8888" is also working, isn't it great :) here is the debug ouput : http://pastebin.com/VcV895MZ

masmu commented 9 years ago

@bachy Ok, since you edited your post i missed that. Was first visible after a refresh.

The link says nothing about DLNA, but there is a news which announces DLNA capabilities after version 1.2.11, if i am understanding french correctly :smile:

So, try a firmware upgrade (if you need it) and perhaps it works right after that too.

The detection of DLNA devices works with UDP broadcasting. This is a bit unreliable by nature and gets more unreliable the more complicate your network is. Thats why i asked for your network setup. So, if there is a device which should be detected, but it is not, just try it again. But most times it gets all devices the first try.

Is there a detailed name for the MusicBox thing? I want to add it to my list of working devices.

bachy commented 9 years ago

here is the musicbox : http://www.woutervanwijk.nl/pimusicbox/ i am running the 0.5.3 version on an RPi 1 B+ through wifi connection

masmu commented 9 years ago

Oh, this a cool project. I will take a deeper look at this.

Btw, BubbleUPNP is also recognized. But the display of your phone has to stay on, while pulseaudio-dlna is searching for it (So, just the first 5 seconds after application startup).

Did you take a look at the firmware version of the freebox?

Which software do you use to switch the streams with KDE? pavucontrol or the default KDE audio manager?