yomguy / deefuzzer Goto Github PK
View Code? Open in Web Editor NEWLight and instant media streaming client for web radios and TVs written in Python
Home Page: https://github.com/yomguy/DeeFuzzer
License: GNU General Public License v3.0
Light and instant media streaming client for web radios and TVs written in Python
Home Page: https://github.com/yomguy/DeeFuzzer
License: GNU General Public License v3.0
control:
mode: 1
port: 16001
infos:
description: "radiorenzo musical History tour"
genre: "Various top40 hits"
name: "radiorenzo musical History tour"
short_name: radiorenzo musical History tour
url: "http://radiorenzo.nl-web.net"
jingles:
dir: "/media/DRIVE2GO/jinglesRadiorenzo40"
mode: 1
shuffle: 1
media:
bitrate: 96
source: "/media/DRIVE2GO/muziek/top 40_1965-heden"
format: mp3
ogg_quality: 4
samplerate: 48000
shuffle: 1
voices: 2
record:
dir: "/path/to/archives"
mode: 0
relay:
author: Unknown
mode: 0
url: "http://127.0.0.1:8000/telecaster_live.mp3"
feeds:
mode: 0
rss: 1
json: 0
playlist: 1
dir: "/path/to/rss/"
enclosure: 1
media_url: "http://localhost/media/"
server:
host: "127.0.0.1"
mountpoint: monitor1
port: 8000
public: 1
sourcepassword: *****
type: icecast
appendtype: 1
twitter:
key: "your access token key"
mode: 0
secret: "your access token secret key"
tags: "parisson deefuzzer"
<
But this gives one error and stream “monitor1 ” does not work.
>
deefuzzer /etc/DeeFuzzer/deefuzzer_MultiRenzo.yaml
root@raspberry3:# deefuzzer /etc/DeeFuzzer/deefuzzer_MultiRenzo.yaml &# server error 9904: b'cannot find free port'
[4] 26383
root@raspberry3:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.6/site-packages/deefuzzer/core.py", line 317, in run
new_station = Station(self.station_settings[i], q, self.log_queue, self.m3u)
File "/usr/local/lib/python3.6/site-packages/deefuzzer/station.py", line 257, in init
self.osc_controller.add_method('/media/next', 'i', self.media_next_callback)
File "/usr/local/lib/python3.6/site-packages/deefuzzer/tools/osc.py", line 39, in add_method
self.server.add_method(path, type, method)
'OSCController' object has no attribute 'server'
<
Also, browsing to localIP:16001 does not work. No page is bean showed here.
Any suggestions what’s going wrong here?
The playlist files are not updated when an MP3 file is changed during playback. This is because the playlists are only generated by the feed code when the playlist itself is changed and not just the metadata in the file(s).
Hi
I am currently setting up a new webradio on my website and I would like my listeners to have the album title displayed on the Icecast status page or on their media player. I am streaming game soundtracks so having the album title is pretty much mandatory since soundtrack track titles aren't always very explicit as to which game they come from.
Is this possible using DeeFuzzer?
Hi,
ERROR: Failed building wheel for pyliblo
Running setup.py clean for pyliblo
Failed to build pyliblo
Installing collected packages: pyliblo, deefuzzer
Running setup.py install for pyliblo ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python3.6 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5gey342u/pyliblo/setup.py'"'"'; file='"'"'/tmp/pip-install-5gey342u/pyliblo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-aiml3b4i/install-record.txt --single-version-externally-managed --compile
cwd: /tmp/pip-install-5gey342u/pyliblo/
Complete output (14 lines):
running install
running build
running build_ext
skipping 'src/liblo.c' Cython extension (up-to-date)
building 'liblo' extension
creating build
creating build/temp.linux-armv7l-3.6
creating build/temp.linux-armv7l-3.6/src
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include/python3.6m -c src/liblo.c -o build/temp.linux-armv7l-3.6/src/liblo.o -fno-strict-aliasing -Werror-implicit-function-declaration -Wfatal-errors
src/liblo.c:599:19: fatal error: lo/lo.h: No such file or directory
#include "lo/lo.h"
^
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/bin/python3.6 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5gey342u/pyliblo/setup.py'"'"'; file='"'"'/tmp/pip-install-5gey342u/pyliblo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-aiml3b4i/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
root@raspberry3:~#
I've installed Deefuzzer using pip and when trying to run it I get the following errors:
Traceback (most recent call last):
File "/usr/bin/deefuzzer", line 54, in <module>
main()
File "/usr/bin/deefuzzer", line 47, in main
d = deefuzzer.core.DeeFuzzer(sys.argv[-1])
File "/usr/lib/python2.6/site-packages/deefuzzer/core.py", line 54, in __init__
self.conf = self.get_conf_dict()
File "/usr/lib/python2.6/site-packages/deefuzzer/core.py", line 85, in get_conf_dict
return xmltodict(data,'utf-8')
File "/usr/lib/python2.6/site-packages/deefuzzer/tools/xmltodict.py", line 37, in xmltodict
return indexchilds(dom, enc)
File "/usr/lib/python2.6/site-packages/deefuzzer/tools/xmltodict.py", line 23, in indexchilds
v = indexchilds(childnode, enc)
File "/usr/lib/python2.6/site-packages/deefuzzer/tools/xmltodict.py", line 23, in indexchilds
v = indexchilds(childnode, enc)
File "/usr/lib/python2.6/site-packages/deefuzzer/tools/xmltodict.py", line 23, in indexchilds
v = indexchilds(childnode, enc)
File "/usr/lib/python2.6/site-packages/deefuzzer/tools/xmltodict.py", line 25, in indexchilds
v = childnode.childNodes[0].nodeValue.encode(enc)
IndexError: list index out of range
Do you think deefuzzer can stream on multiple icecast mountpoint (with the same media source)?
I try to load 3 stations in the same config and I've got Station 2 is stopped and will not be restarted.
I try to load 1 station per config and load 3 configs and the third one:
Can we create a new branch and call it Beta-0.7? That way we can begin final testing and apply only bug fixes to this branch, and save anything that requires new features to the main dev branch. That is, if we're targetting a 0.7 release near 2/1.
In my yaml file my stream description contain "à" character and it's fail.
$ deefuzzer deefuzzer.yaml
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.6-py2.7.egg/deefuzzer/core.py", line 122, in run
self.stations.append(Station(station, q, self.logger, self.m3u))
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.6-py2.7.egg/deefuzzer/station.py", line 122, in __init__
self.channel.description = self.station['infos']['description']
TypeError: String argument required
infos: {name: "station name",
description: "Test là",
genre: music,
url: 'http://www.station.fm'}
If I replace "là" by "la", it's works well.
Is yaml string are in UTF-8? I haven't test with xml, I can test it ;-).
DeeFuzzer fails to decode some chars in the mp3 metadata and stops.
2014-12-10 23:08:14,265 INFO Station http://stream.parisson.com:8000/deefuzzer_test.mp3: DeeFuzzing: id = 755, name = dgt&cbpj_vol.3--17-parris_mitchell-all_night_long-hvt.mp3
2014-12-10 23:11:42,754 ERROR Station http://stream.parisson.com:8000/deefuzzer_test.mp3: icecastloop_nextmedia: Error: 'ascii' codec can't decode byte 0xc3 in position 27: ordinal not in range(128)
Hi
I have some problem with running DeeFuzzer, the problem is I can see the my_station.mp3 for one second and after that for some reason I lose the connection and I don't know why! as you can see my xml file is:
<deefuzzer>
<log>/home/niman66/Temp/deeF/nima.log</log>
<m3u>/home/niman66/Temp/deeF/nima.m3u</m3u>
<station>
<infos>
<short_name>my_station</short_name>
<name>My best funky station</name>
<description>My personal best funky playlist ever !</description>
<url>http://localhost</url>
<genre>Various Funk Groove</genre>
</infos>
<server>
<type>icecast</type>
<host>localhost</host>
<port>8000</port>
<sourcepassword>admin</sourcepassword>
<public>0</public>
</server>
<media>
<dir>/home/niman66/Music/ebi/</dir>
<format>mp3</format>
<bitrate>192</bitrate>
<ogg_quality>7</ogg_quality>
<samplerate>44100</samplerate>
<voices>2</voices>
<shuffle>1</shuffle>
<m3u>/home/niman66/Temp/deeF/nima.m3u</m3u>
</media>
<rss>
<dir>/home/niman66/Temp/deeF/</dir>
<enclosure>0</enclosure>
<media_url>http://localhost:8000/media/</media_url>
</rss>
</station>
</deefuzzer>
and the icecast2 log is:
[2015-01-11 12:08:27] INFO connection/_handle_source_request Source logging in at mountpoint "/my_station.mp3"
[2015-01-11 12:08:27] INFO source/source_main listener count on /my_station.mp3 now 0
[2015-01-11 12:08:38] WARN source/get_next_buffer Disconnecting source due to socket timeout
[2015-01-11 12:08:38] INFO source/source_shutdown Source "/my_station.mp3" exiting
the strange thing is when I run "deefuzzer deefuzzer.xml" my nima.m3u file content change to this:
#EXTM3U
#EXTINF:-1,my_station - My best funky station : http://localhost
http://localhost:8000/my_station.mp3
am I missed something?
Hello is it feasible to create a Radio Station only with DeeFuzzer which have the following features:
Stream seamless prerecorded DJ Mixes which are essentially one BIG audio
file and provide the listener with Song Information. (for each song in the mix)
I have tried different approaches like Icecast / Shoutcast.
Just playing a Playlist with files or with crossfades is not good enough.
(always audible glitches especially if you have a continious 4/4 trance
beat)
The only really seamless solution I have found so far, was using Icecast
and foobar2000 (the only cue-sheet player i have found and it is for
windows!) + edcast dsp (no longer maintained?) playing a cue sheet wich
contains the necessary Song Information.
To display the metadata on a webpage I have parsed the audio stream with
nodejs and pushed the songinfo via socketio to a htm5 based client.
While this approach is "working" I am looking for something more solid.
Can you use cuesheets (or something similar) with DeeFuzzer
Regards
Marc
<log>./log/station.log</log>
<m3u>./log/station.m3u</m3u>
<stationdefaults>
<control>
<mode>0</mode>
<port>16001</port>
</control>
<jingles>
<dir>/path/to/jingles</dir>
<mode>0</mode>
<shuffle>1</shuffle>
</jingles>
</stationdefaults>
<station>
<control>
<mode>0</mode>
<port>16001</port>
</control>
<infos>
<description>My personal best funky playlist ever !</description>
<genre>Various Funk Groove</genre>
<name>My best funky station</name>
<short_name>My_station</short_name>
<url>http://parisson.com</url>
</infos>
<jingles>
<dir>/path/to/jingles</dir>
<mode>0</mode>
<shuffle>1</shuffle>
</jingles>
<media>
<bitrate>96</bitrate>
<source>./media/</source>
<format>mp3</format>
<ogg_quality>4</ogg_quality>
<samplerate>48000</samplerate>
<shuffle>0</shuffle>
<voices>2</voices>
</media>
<record>
<dir>/path/to/archives</dir>
<mode>0</mode>
</record>
<relay>
<author>Unknown</author>
<mode>0</mode>
<url>http://127.0.0.1:8000/telecaster_live.mp3</url>
</relay>
<feeds>
<mode>1</mode>
<rss>1</rss>
<json>0</json>
<playlist>1</playlist>
<dir>/path/to/rss/</dir>
<enclosure>1</enclosure>
<media_url>http://localhost/media/</media_url>
</feeds>
<server>
<host>localhost</host>
<mountpoint>pop</mountpoint>
<port>8000</port>
<public>0</public>
<sourcepassword>hackme</sourcepassword>
<type>icecast</type>
<appendtype>1</appendtype>
</server>
<twitter>
<key>your access token key</key>
<mode>0</mode>
<secret>your access token secret key</secret>
<tags>parisson deefuzzer</tags>
</twitter>
</station>
station log
2019-07-04 14:29:19,325 INFO Core: Starting DeeFuzzer
2019-07-04 14:29:19,325 INFO Core: Using libshout version 2.4.1
2019-07-04 14:29:19,325 INFO Core: Number of stations : 1
2019-07-04 14:29:19,326 INFO Core: Loading new stations
2019-07-04 14:29:19,327 INFO Station http://localhost:8000/pop.mp3: Opening pop - My best funky station
2019-07-04 14:29:19,327 INFO Core: Started station Station 0
2019-07-04 14:29:19,328 INFO Core: Writing M3U file to : ./log/station.m3u
2019-07-04 14:29:19,333 INFO Station http://localhost:8000/pop.mp3: Channel available.
2019-07-04 14:29:19,334 INFO Station http://localhost:8000/pop.mp3: channel connected
2019-07-04 14:29:19,334 INFO Station http://localhost:8000/pop.mp3: Generating new playlist (3 tracks)
2019-07-04 14:29:19,339 INFO Station http://localhost:8000/pop.mp3: DeeFuzzing: id = 2, name = Iwan Fals - Satu Satu my-free-mp3s.com .mp3
Hi There
im wondering firstly is there a place where we can ask these questions rather than leave an issue in github? :)
secondly can DeFuzzer receive and input from an encoder?
for example i send a stream with an icy protocol to DeFuzzer and deFuzzer sends to icecast?
Kind Regards
MooseH
I dont know why but I can not start deefuzzer.. throws this error:
Traceback (most recent call last):
File "/usr/local/bin/deefuzzer", line 56, in
main()
File "/usr/local/bin/deefuzzer", line 48, in main
d = deefuzzer.core.DeeFuzzer(sys.argv[-1])
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/core.py", line 69, in init
self.conf = get_conf_dict(self.conf_file)
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/tools/utils.py", line 93, in get_conf_dict
return xmltodict(data, 'utf-8')
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/tools/xmltodict.py", line 38, in xmltodict
return indexchilds(dom, enc)
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/tools/xmltodict.py", line 23, in indexchilds
v = indexchilds(childnode, enc)
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/tools/xmltodict.py", line 23, in indexchilds
v = indexchilds(childnode, enc)
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/tools/xmltodict.py", line 25, in indexchilds
v = childnode.childNodes[0].nodeValue.encode(enc)
IndexError: tuple index out of range
My config file is:
http://pastebin.com/zEsH5nYQ
I only have very basic needs, but struggling a streaming client to offer them.
I don't need jingles, this isn't going out over the internet, it's purely streaming a 2000 or so playlist of songs on my local lan.
related to #82
Especially URLs sent to outside services (Twitter). These should be configurable in some way rather than changing code.
Will this application no longer be supported? The latest version is nine months ago! DeeFuzzer is very useful and it is a pity it is not supported.
I write a little playlist scheduler and I want to call this playlist generator on startup and when the playlist end to generate a new one.
@yomguy What is the best way to call my playlist generator?
Thanks in advance ;)
The extension ".mp3" is back on mountpoint name in 0.7 ;)
We remove it in 0.6.6.
Hello Guillaume I have this error and I don't understand why:
$ deefuzzer mystation.xml
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.5-py2.7.egg/deefuzzer/core.py", line 115, in run
self.set_m3u_playlist()
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.5-py2.7.egg/deefuzzer/core.py", line 93, in set_m3u_playlist
os.makedirs(m3u_dir)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 2] No such file or directory: ''
I try many things… last version, version 6.5 from december 3 without success.
I don't know if i have to add in my m3u file the full path or not.
Like:
/home/deefuzzer/mp3/artist - song.mp3
Or if my m3u is in /home/deefuzzer/station.m3u only:
mp3/artist - song.mp3
Do I have to escape spaces in my m3u?
mp3/artist\ -\ song.mp3
Thanks for your help.
Got into configuring deefuzzer to play along with icecast2 on Arch Linux. I'm down to a point where it starts without error but shuts down immediately after, also without any error.
I'd presume it has something to do with mp3s but I can't begin to know how to debug this.
Here's my xml config:
<deefuzzer>
<log>/home/useiradio/neonorigami/conf/deefuzzer/log/deefuzzer.log</log>
<m3u>/home/useiradio/neonorigami/conf/neonorigami.m3u</m3u>
<station>
<infos>
<short_name>stream</short_name>
<name>NeonOrigamiRadio</name>
<description>Cybernetic music from Fax</description>
<url>http://neonorigami.com</url>
<genre>fax electronic</genre>
</infos>
<server>
<type>icecast</type>
<host>00.00.00.000</host>
<port>7701</port>
<sourcepassword>neonorigami</sourcepassword>
<public>0</public>
</server>
<media>
<dir>/home/useiradio/neonorigami/library/</dir>
<format>mp3</format>
<bitrate>80</bitrate>
<ogg_quality>7</ogg_quality>
<samplerate>44100</samplerate>
<voices>2</voices>
<shuffle>1</shuffle>
<m3u>/home/useiradio/neonorigami/conf/neonorigamiplaylist.m3u</m3u>
</media>
<rss>
<dir>/home/useiradio/neonorigami/log</dir>
<enclosure>0</enclosure>
<media_url>http://neonorigami.com</media_url>
</rss>
<twitter>
<mode>0</mode>
<key>0000</key>
<secret>0000</secret>
<tags>blabla</tags>
</twitter>
<jingles>
<mode>0</mode>
<dir>/path/to/jingles</dir>
<shuffle>1</shuffle>
</jingles>
<control>
<mode>0</mode>
<port>1234</port>
</control>
<relay>
<mode>0</mode>
<url>http://anotherdomain.com:8000/stream.mp3</url>
<author>Me</author>
</relay>
<record>
<mode>0</mode>
<dir>/path/to/archives</dir>
</record>
</station>
</deefuzzer>
And here's log fragment:
2014-11-05 20:39:40,676 INFO Starting DeeFuzzer
2014-11-05 20:39:40,677 INFO Using libshout version 2.3.1
2014-11-05 20:39:40,677 INFO Number of stations : 1
2014-11-05 20:39:40,678 INFO Opening stream - NeonOrigamiRadio : http://neonorigami.com (182 tracks)...
2014-11-05 20:39:40,678 INFO Writing M3U file to : /home/useiradio/neonorigami/conf/neonorigami.m3u
2014-11-05 20:39:40,736 INFO Station http://00.00.00.000:7701/stream.mp3 : channel available
2014-11-05 20:39:40,737 INFO Station http://00.00.00.000:7701/stream.mp3 : channel connected
2014-11-05 20:39:40,737 INFO Station http://00.00.00.000:7701/stream.mp3 : generating new playlist (182 tracks)
2014-11-05 20:39:40,958 INFO DeeFuzzing on stream : id = 1, name = Jonny L - Uneasy.mp3
Of course 00.00.00.000 stands or my proper public ip address.
Could you please help me with this? There is no other tool like deefuzzer and I desperately need to make it work.
In the rss section, in the current.json the "next play time" for current track is 22:29:01.
In the playlist.json the "next play time" for the first element is : 22:29:01 instead of 22:29:01 + duration of track 1.
Hi Guillaume,
I've edit many times my config file. I think it's great to have a "global" path for "archive", "jingles", "logs", "m3u", "mp3"… Instead of editing, jingles.dir, media.dir, media.m3u.
JSON looks like:
{
"deefuzzer": {
"log":"station_name.log",
"m3u":"station_name.m3u",
"folder_path":"/home/station_name/",
"station": {
"jingles": {
"dir":"jingle"
}
}
}
}
For jingle example maybe if "dir" doesn't start by "/", you can folder_path before.
It's works for few hours and crash.
# deefuzzer config.yaml
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.6-py2.7.egg/deefuzzer/station.py", line 657, in run
self.set_read_mode()
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.6-py2.7.egg/deefuzzer/station.py", line 573, in set_read_mode
self.song = song.encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 27: ordinal not in range(128)
In my log:
2014-08-07 23:09:09,882 INFO DeeFuzzing on station_name : id = 149, name = mysong.mp3
2014-08-07 23:30:06,485 INFO Starting DeeFuzzer
@yomguy The track_id 150 crash deefuzzer. It contain a "è" character. I don't know why, It can read other tracks with "é" or "ê" or "é" and "è" in same word but not this one. Do you have any idea? Do you have a tool to check file encoding / id3tag encoding?
Other question, does deefuzzer use "ID3tags" or only mp3 filename?
At Icecast2 Status page and also in media player it can't handle some (foreign) chars and instead displays a decimal code.
For example š gets displayed as š
, č as č
, etc. (id3 tag info)
Hi, installed the deefuzzer on raspberry 3 debian stretch. The following erroor when starting the program. Pleace can some one give a stap bi stap solution? I am not realy good whit python. Hope to here soon!
pkg_resources.DistributionNotFound: The 'pycurl' distribution was not found and is required by DeeFuzzer
hi
Is there any way to authenticate user before connecting to the server?
I think you have to remove CHANGELOG file from manifest right?
My configuration file is a yaml. Maybe it's works well with an xml file or other formats…
When I use a folder like /home/choiz/tracks/
It's works well!
When I use a m3u file like /home/choiz/playlist.m3u
It's doesn't works well.
My media config is like:
media: {source: /home/choiz/playlist.m3u,
format: mp3,
bitrate: 192,
ogg_quality: 0,
samplerate: 44100,
shuffle: 0,
voices: '2'}
I update only "source" and it's works with a folder with mp3 inside.
Here my log:
2015-01-30 00:45:28,852 INFO Station http://mystation/test.mp3: Generating new playlist (0 tracks)
2015-01-30 00:45:28,852 ERROR Station http://mystation/test.mp3: icecastloop_nextmedia: Error: list index out of range
2015-01-30 00:45:28,852 INFO Station http://mystation/test.mp3: Something wrong happened in icecastloop_nextmedia. Ending.
Log with a single mp3 file in my folder:
2015-01-30 00:56:34,976 INFO Station http://mystation/test.mp3: Generating new playlist (1 tracks)
2015-01-30 00:56:34,986 INFO Station http://mystation/test.mp3: DeeFuzzing: id = 0, name = artist - track.mp3
Add a tag 0.6.6 on the specific commit.
Maybe it's: 25a88da
If you want to read an m3u file you need to remove "media.dir" parameter.
Maybe we can imagine a "mode" for media node:
With this "mode" maybe "dir" and "m3u" can be the "same" parameter named: "source".
Currently, using an M3U file as a source does not handle relatives paths. As specified in https://en.wikipedia.org/wiki/M3U the reader of the M3U should support paths relative to the M3U file location.
Can we merge or drop "daniel" branch or @yomguy you want to keep it?
I want to use another stream in deefuzzer and my xml is:
<'station'>
<'infos'>
<'short_name'>radio<'/short_name'>
<'name'>radio<'/name'>
<'description'>radio<'/description'>
<'url'>http://localhost<'/url'>
<'genre'>radio<'/genre'>
<'/infos'>
<'media'>
<'dir'>/home/niman66/ogg/<'/dir'>
<'format'>mp3<'/format'>
<'bitrate'>128<'/bitrate'>
<'ogg_quality'>7<'/ogg_quality'>
<'samplerate'>44100<'/samplerate'>
<'voices'>2<'/voices'>
<'shuffle'>1<'/shuffle'>
<'/media'>
<'server'>
<'type'>icecast<'/type'>
<'host'>localhost<'/host'>
<'port'>8000<'/port'>
<'sourcepassword'>admin<'/sourcepassword'>
<'public'>0<'/public'>
<'/server'>
<'rss'>
<'dir'>/home/niman66/Temp/deefuzzer/<'/dir'>
<'enclosure'>0<'/enclosure'>
<'media_url'>http://localhost:8000/media/<'/media_url'>
<'/rss'>
<'relay'>
<'mode'>1<'/mode'>
<'url'>http://buecrplb01.cienradios.com.ar/50_32000.aac<'/url'>
<'author'>radio<'/author'>
<'/relay'>
<'/station'>
I can here stream for a few second and after that I lose the connection, the deefuzzer log is:
2015-01-28 09:06:39,230 INFO Opening radio - radio : http://localhost (1 tracks)...
2015-01-28 09:06:39,897 INFO Station http://localhost:8000/radio.mp3 : received OSC message '/media/relay' with arguments '1'
2015-01-28 09:06:39,897 INFO Station http://localhost:8000/radio.mp3 : relaying : http://buecrplb01.cienradios.com.ar/50_32000.aac
2015-01-28 09:06:39,897 INFO Writing M3U file to : /home/niman66/Temp/deefuzzer/mystation.m3u
2015-01-28 09:06:39,900 INFO Station http://localhost:8000/radio.mp3 : channel available
2015-01-28 09:06:39,900 INFO Station http://localhost:8000/radio.mp3 : channel connected
2015-01-28 09:06:39,901 INFO Station http://localhost:8000/radio.mp3 : generating new playlist (1 tracks)
2015-01-28 09:06:52,747 ERROR Station http://localhost:8000/radio.mp3 : could not send the buffer
2015-01-28 09:06:52,748 INFO Station http://localhost:8000/radio.mp3 : channel closed
2015-01-28 09:06:52,749 INFO Station http://localhost:8000/radio.mp3 : channel restarted
2015-01-28 09:07:20,501 ERROR Station http://localhost:8000/radio.mp3 : could not send the buffer
2015-01-28 09:07:20,501 INFO Station http://localhost:8000/radio.mp3 : channel closed
ps: my deefuzzer version is 0.6.5
Hello,
I am trying to build a simple mp3 streaming server with your example XML config file.
But I am not getting any result for that.
I've installed DeeFuzzer on Ubuntu 18.04.
I want to get a simple config example file and please guide this.
this is my config:
'''
deefuzzer:
log: /home/ubuntu/Work/Music_streaming/music_data/station.log
m3u: /home/ubuntu/Work/Music_streaming/music_data/station.m3u
stationdefaults:
control: {mode: 0,
port: 16001}
jingles: {dir: /home/ubuntu/Work/Music_streaming/music_data/jingles,
mode: 0,
shuffle: 0}
station:
control: {mode: 0,
port: 16001}
infos: {description: 'My personal best funky playlist ever!',
genre: 'Various Funk Groove',
name: 'My best funky station',
short_name: "My_station",
url: 'http://parisson.com'}
jingles: {dir: /home/ubuntu/Work/Music_streaming/music_data/jingles,
mode: 0,
shuffle: 1}
media: {bitrate: 96,
source: /home/ubuntu/Work/Music_streaming/music_data/mp3,
format: mp3,
ogg_quality: 4,
samplerate: 48000,
shuffle: 0,
voices: '1'}
record: {dir: /home/ubuntu/Work/Music_streaming/music_data/archives,
mode: 0}
relay: {author: Unknown,
mode: 0,
url: 'http://127.0.0.1:8000/test.mp3'}
feeds: {mode: 1, rss: 1, json: 0, playlist: 1,
dir: /home/ubuntu/Work/Music_streaming/music_data/rss,
enclosure: 0,
media_url: 'http://localhost/media/'}
server: {host: 127.0.0.1,
mountpoint: monitor,
port: 8000, public: 0,
sourcepassword: icecast_source_password,
type: icecast, appendtype: 1}
twitter: {key: 'your access token key',
mode: 0, secret: 'your acess token secret key',
tags: 'parisson deefuzzzer'}
'''
Please share your idea of what's wrong.
Thanks
There is a 10-20s seconds break between each song where the stream seems to be interupted, here is the log :
2016-09-04 03:00:17,946 INFO Station http://exemple.com:8000/radio.mp3: channel restarted
2016-09-04 03:05:13,710 INFO Station http://exemple.com:8000/radio.mp3: DeeFuzzing: id = 8, name = 1-06 LABYRINTH.mp3
2016-09-04 03:05:13,748 ERROR Station http://exemple.com:8000/radio.mp3: could not send the buffer
2016-09-04 03:05:13,748 INFO Station http://exemple.com:8000/radio.mp3: channel closed
2016-09-04 03:05:13,757 INFO Station http://exemple.com:8000/radio.mp3: channel connected
2016-09-04 03:05:13,757 INFO Station http://exemple.com:8000/radio.mp3: channel restarted
2016-09-04 03:07:23,547 INFO Station http://exemple.com:8000/radio.mp3: DeeFuzzing: id = 9, name = 4.Lost Bribe -Night Stalker-.mp3
2016-09-04 03:07:23,562 ERROR Station http://exemple.com:8000/radio.mp3: could not send the buffer
2016-09-04 03:07:23,563 INFO Station http://exemple.com:8000/radio.mp3: channel closed
2016-09-04 03:07:23,570 INFO Station http://exemple.com:8000/radio.mp3: channel connected
2016-09-04 03:07:23,571 INFO Station http://exemple.com:8000/radio.mp3: channel restarted
and here is my xml file : http://pastebin.com/6evntzSj
DeeFuzzer should be able to :
WebM streaming with pycurl together with MP3 streaming with libshout is buggy.
Although I thought the pycurl method would lock the GIL, it seems that urllib is NOT thread safe ! So we need to find a better thread safe solution for relaying.
Bug:
[1244719.263286] deefuzzer[2699]: segfault at 2dfc000 ip 00007f7b6156e8a2 sp 00007f7b5df615c0 error 4 in libshout.so.3.2.0[7f7b61567000+f000]
Some infos & clues:
http://stackoverflow.com/questions/4549490/pycurl-curl-not-following-the-curlopt-timeout-option
http://stackoverflow.com/questions/5825151/are-urllib2-and-httplib-thread-safe
http://urllib3.readthedocs.org/en/latest/
https://gist.github.com/andrewwatts/2012630
http://fragmentsofcode.wordpress.com/2011/01/22/pycurl-curlmulti-example/
I've created a new branch called dsw-playlist. It's got a large number of changes that need testing, including an all-new playlist class. You can see the code at https://github.com/achbed/DeeFuzzer/tree/dsw-playlist - feel free to branch and submit pull requests back. At the current time, it's completely untested, and pretty much guaranteed to break your instance, so do NOT use this on a production machine.
Highlights:
To Do:
Hi I tried to stream alsa input (as mp3 file) with deefuzzer but I get this error:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/station.py", line 625, in run
self.set_read_mode()
File "/usr/local/lib/python2.7/dist-packages/deefuzzer/station.py", line 530, in set_read_mode
self.title = self.current_media_obj[0].metadata['title']
IndexError: list index out of range
so I changed the Mp3 class(deefuzzer/tools/mp3.py) from:
self.bitrate = int(str(self.info.bitrate)[:-3])
to:
try:
self.bitrate = int(str(self.info.bitrate)[:-3])
except:
self.bitrate = self.bitrate_default
is there any better way?
ps: I'm using ffmpeg for converting input to mp3 file:
ffmpeg -f alsa -i hw:0,0 -acodec libmp3lame -ab 128k -ac 1 -ar 44100 -vn test.mp3
I use a xml config file with 2 stations and on starting deefuzzer:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.5_chz-py2.7.egg/deefuzzer/station.py", line 611, in run
self.channel_open()
File "/usr/local/lib/python2.7/dist-packages/DeeFuzzer-0.6.5_chz-py2.7.egg/deefuzzer/station.py", line 569, in channel_open
self.channel.open()
ShoutException: Login failed
In my log file:
2013-12-04 23:18:41,779 INFO Starting DeeFuzzer
2013-12-04 23:18:41,780 INFO Using libshout version 2.2.2
2013-12-04 23:18:41,780 INFO Number of stations : 2
2013-12-04 23:18:41,780 INFO Opening station1 - Station1 (13 tracks)...
2013-12-04 23:18:41,780 INFO Opening station2 - Station 2 (2 tracks)...
2013-12-04 23:18:41,781 INFO Writing M3U file to : /home/dee/station.m3u
2013-12-04 23:18:41,797 INFO Station http://localhost:8000/station2 : channel available
2013-12-04 23:18:41,997 INFO Station http://localhost:8000/station : channel available
2013-12-04 23:18:41,997 INFO Station http://localhost:8000/station2 : channel connected
2013-12-04 23:18:41,997 INFO Station http://localhost:8000/station2 : generating new playlist (2 tracks)
2013-12-04 23:18:42,003 INFO DeeFuzzing on station2 : id = 1, name = mysong.mp3
DeeFuzzer should be able to read a M3U file to get the playlist.
First of all, I suspect this may be my environment. I'm not sure what's causing it, but DeeFuzzer seems to be crashing about every 13 hours (so far) when playing 10 streams at once. When it dies, there;s nothing reported to the log at all - just silence. I'm unable to see anything in any log that says its either stopping or crashed.
Log snippet during a crash/restart:
2014-12-02 14:04:32,230 INFO Station http://streams.patestapes.com:80/world001: DeeFuzzing: id = 15, name = 15-Chinalia Brothers_ Coco BeansThe Chinalia Brothers.mp3
2014-12-02 14:05:18,096 INFO Station http://streams.patestapes.com:80/carib001: DeeFuzzing: id = 17, name = 17-Eric_Donaldson_Cherry_O_Baby_-_Single.mp3
2014-12-02 14:05:43,468 INFO Station http://streams.patestapes.com:80/populux001: DeeFuzzing: id = 12, name = 12-Gong_ Percolations Part 1.mp3
2014-12-02 14:06:13,585 INFO Station http://streams.patestapes.com:80/easy001: DeeFuzzing: id = 13, name = 13-Talking_Heads__Once_In_A_Lifetime.mp3
2014-12-02 14:06:21,601 INFO Station http://streams.patestapes.com:80/populux012: DeeFuzzing: id = 8, name = 08-Punch_Brothers__Movements___Locations_.mp3
2014-12-02 14:06:45,161 INFO Station http://streams.patestapes.com:80/jazz001: DeeFuzzing: id = 15, name = 15-Thelonious_Monk_Epistrophy_64_Its_Monk_Time.mp3
2014-12-02 14:06:46,732 INFO Station http://streams.patestapes.com:80/populux011: DeeFuzzing: id = 47, name = 47-Purity Ring_ Loftcries – Ungirthed 7_ (Canada).mp3
2014-12-02 14:07:15,195 INFO Core: Starting DeeFuzzer
2014-12-02 14:07:15,195 INFO Core: Using libshout version 2.3.1
2014-12-02 14:07:15,195 INFO Core: Number of stations : 0
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/populux012
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/easy001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/jazz001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/sound001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/africa001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/populux011
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/world002
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/xmas001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/world001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/populux001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/jukebox001
2014-12-02 14:07:15,198 INFO Core: Creating station for folder /srv/pt/patestapes.com/media/carib001
2014-12-02 14:07:15,198 INFO Core: Loading new stations
Hi,
I tried to found a way for stream live video to Deefuzzer.
But I found nothing on it on the documentation online..
I would like to understand, how to make it.
Maybe, in using ffmpeg for made it like a webM flux ?
An overly-aggressive XML parser is causing any XML files with empty tag values to crash the entire application.
Example:
<name></name>
causes a crash, <name> </name>
does not.
As this is an issue with the parser itself (I belive we're using xml.dom.minidom
), I'm not sure what we can do here.
(Affects current dev branch after merge of pull request 39)
Noting here to add to the "fix it before release" queue.
@yomguy Can you tag the last 0.7 commit to keep each version in "tags" list?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.