Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


Check-in [4edfd34e6b]

Overview
Comment:Updated README and releases.json for 2.1.2 bugfix release.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | 2.1.2
Files: files | file ages | folders
SHA1: 4edfd34e6b824d67aa9bac21252b348268f18a25
User & Date: mario on 2014-07-31 01:26:17
Other Links: manifest | tags
Context
2014-07-31
03:23
Fixed invalid encoding in (manually edited) releases.json check-in: e5effdd595 user: mario tags: trunk
01:26
Updated README and releases.json for 2.1.2 bugfix release. check-in: 4edfd34e6b user: mario tags: trunk, 2.1.2
01:14
Shorter YT urls. check-in: 883ba616fa user: mario tags: trunk
Changes

Modified README from [c31808d0e4] to [2a149ea96d].

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98













99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122

You can just execute the main binary "st2.py". All the other files
need to be copied into /usr/share/streamtuner2/ however. If it
doesn't work, make sure you have Python and gtk/pygtk installed:

  sudo apt-get install python python-gtk2 python-glade2 python-xdg


The *.glade file represents the GUI.  So if you have the glade-3
application installed, you can inspect and enhance the interface.
Give it a try, report back.


development state
-----------------

There was a lengthy development pause, actual maintenance time of
this application is probably 2-3 months now. However, it is mostly
feature-complete meanwhile. The internal application structures are
somewhat settled. Some modules are still pretty rough (json format,
http functions), and especially the action module for playing and
recording isn't very autonomic (though has some heuristic and uses
stream format hints).

The directory modules mostly work. If they don't, it's just a
matter of adapting the regular expressions. Shoutcast and Live365
lately changed the HTML output, so broke. Therefore PyQuery parsing
methods were implemented, which extract stream info from HTML soup
using CSS/jQuery selectors.
And it should be pretty easy to add new ones. There will also
somewhen be a feature to add simple station 'scripts'; in testing.


comparison to streamtuner1
--------------------------

Streamtuner1 has been written around 2002-2004. At this time it was
totally unfeasible to write any responsive application in a scripting
language. Therefore it was implemented in C, which made it speedy.

Using C however has some drawbacks. The codebase is more elaborate,
and it often takes more time to adapt things.

Personally I had some occasional crashes because of corrupt data
from some of the directory services. Because that was more difficult
to fix in C code, this rewrite started. It's purely for practical
purposes, not because there was anything wrong with streamtuner1.

streamtuner2 being implemented directly in Python (the C version had
a Python plugin), cuts down the code size considerably. It's much
easier to add new plugins. (Even though it doesn't look that way yet.)

For older machines or netbooks, the C streamtuner1 might overall
remain the better choice, btw. Running inside the Python VM makes this
variant more stable, but also way more memory hungry. (This has been
reduced with some de-optimizations already.)


advertisement
-------------

If you are looking for a lightweight alternative, Tunapie is still
in development, and it has a working Shoutcast+Xiph reader.
http://tunapie.sourceforge.net/

Streamtuner2 CLI can also be used as proxy server for streamtuner1.
There is a wrapper available. But there was nobody yet to be found who
wanted it set up globally. (Else streamtuner1 would just require a patch
in /etc/hosts to work again.)
It's available as st1proxy.tgz and cli-mode-only.tgz from
http://milki.include-once.org/streamtuner2/ext/
Contact me for setup help. Requires a webserver with unrestrained
vhost support.


license
-------

Public Domain.
(no rules: unrestricted copying, modification, distribution, etc.)


history
-------














2.1.1
- Added SurfMusik and Youtube plugin channels. Google/DMOZ removed.
- Jamendo viewing now utilizes the v3.0 JSON API for genres/tracks
  and uses cover images instead of favicons.
- A new logo was introduced.
- The reworked configuration dialog now provides editable lists for
  player and recording apps configuration, a more descriptive options
  pane, a better overview for enabled and available plugins (with fresh
  meta comment blocks), and dropdowns instead of text-fields are used.
- Internet-Radio parsing was fixed, a workaround for absent titles
  added. Shoutcast also alternates between DOM and Regex fetching.
- For Xiph browsing a custom caching API was introduced.
- Status bar / download progress display was fixed.
- A history plugin was added. And extension hooks{} support started.
- Some more Python3 fixes applied. Documentation was adapted.

2.1.0
- support for running on Python3 or Python2,
  as well as Gtk3 (PyGI) and Gtk2 (PyGtk with Python2) bindings
- fixed Shoutcast, DMOZ, Live365
- while Jamendo now lists radios only
- removal of basic.ch and tv channels
- include requests+urllib3 in favour of urllib+urllib2
- some manual pages have been updated







<
|
<
<
|

<
<

<
<
<
<
<
<
<
|
<
<
<
<
<
<
<
<
<
<
|

<
<
<
|
<
<
|
<
<
<
<
|
<
<
<
|
<
<
<
<
|

<
<

<
<
<
<


|
<
















>
>
>
>
>
>
>
>
>
>
>
>
>
|















|







14
15
16
17
18
19
20

21


22
23


24







25










26
27



28


29




30



31




32
33


34




35
36
37

38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

You can just execute the main binary "st2.py". All the other files
need to be copied into /usr/share/streamtuner2/ however. If it
doesn't work, make sure you have Python and gtk/pygtk installed:

  sudo apt-get install python python-gtk2 python-glade2 python-xdg


The gtk*.xml file represents the GUI.  So with glade installed, you


can inspect and adapt the interface.











alternatives










------------




* http://sourceforge.net/projects/radiotray/


* https://sites.google.com/site/glrpgreatlittleradioplayer/




* http://tunapie.sourceforge.net/



* VLC also has a few directory discovery services built-in




* Rythmbox comes with last.fm, libre.fm, radio lookups








Streamtuner2 CLI can also be used as proxy server for streamtuner1.
There is a wrapper available. But there was nobody yet to be found who
wanted it set up globally.

It's available as st1proxy.tgz and cli-mode-only.tgz from
http://milki.include-once.org/streamtuner2/ext/
Contact me for setup help. Requires a webserver with unrestrained
vhost support.


license
-------

Public Domain.
(no rules: unrestricted copying, modification, distribution, etc.)


history
-------

2.1.2 (2014-07-31)
- Listing from the renewed Radionomy Shoutcast has been fixed.
- Live365 was disabled.
- New iTunes Radio stations channel (via RoliSoft Radio Playlist API).
- New channel module "iCast.io" as seen in VLC.
- SurfMusic.de is now available in a localized English display.
- Shorter Youtube URLs are now used, Wadsworth constant available.
- MyOggRadio.org API interaction fixed.
- Fixed cache search to copy results before overwriting category.
- Slim new search dialog offers scanning all channels or just current.
- More online music service links have been added.
- Better post-extraction cleanup.

2.1.1 (2014-05-28)
- Added SurfMusik and Youtube plugin channels. Google/DMOZ removed.
- Jamendo viewing now utilizes the v3.0 JSON API for genres/tracks
  and uses cover images instead of favicons.
- A new logo was introduced.
- The reworked configuration dialog now provides editable lists for
  player and recording apps configuration, a more descriptive options
  pane, a better overview for enabled and available plugins (with fresh
  meta comment blocks), and dropdowns instead of text-fields are used.
- Internet-Radio parsing was fixed, a workaround for absent titles
  added. Shoutcast also alternates between DOM and Regex fetching.
- For Xiph browsing a custom caching API was introduced.
- Status bar / download progress display was fixed.
- A history plugin was added. And extension hooks{} support started.
- Some more Python3 fixes applied. Documentation was adapted.

2.1.0 (2014-01-05)
- support for running on Python3 or Python2,
  as well as Gtk3 (PyGI) and Gtk2 (PyGtk with Python2) bindings
- fixed Shoutcast, DMOZ, Live365
- while Jamendo now lists radios only
- removal of basic.ch and tv channels
- include requests+urllib3 in favour of urllib+urllib2
- some manual pages have been updated

Modified releases.json from [a02e831a84] to [4b01ff00d5].

10
11
12
13
14
15
16








17
18
19
20
21
22
23
        "fossil": "http://fossil.include-once.org/streamtuner2/",
        "homepage": "http://milki.include-once.org/streamtuner2/",
        "src": "http://milki.include-once.org/streamtuner2/streamtuner2-$version.src.txz",
        "deb": "http://milki.include-once.org/streamtuner2/streamtuner2-$version.deb",
        "rpm": "http://milki.include-once.org/streamtuner2/streamtuner2-$version.rpm"
    },
    "releases": [








        {
            "version": "2.1.1",
            "state": "stable",
            "scope": "major feature",
            "changes": "YouTube and SurfMusik channels were added, MODarchive included, but Google/DMOZ removed. The Jamendo API now allows browsing genres and shows cover images. Internet-Radio extraction was fixed, and a custom caching API introduced for Xiph/ICEcast. The configuration dialog visualizes plugins and options more coherently now. A new logo was introduced, and many bugfixes applied.",
            "download": "http://sourceforge.net/projects/streamtuner2/files/?source=navbar",
            "published": "2014-05-28T16:31:00+0000"







>
>
>
>
>
>
>
>







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        "fossil": "http://fossil.include-once.org/streamtuner2/",
        "homepage": "http://milki.include-once.org/streamtuner2/",
        "src": "http://milki.include-once.org/streamtuner2/streamtuner2-$version.src.txz",
        "deb": "http://milki.include-once.org/streamtuner2/streamtuner2-$version.deb",
        "rpm": "http://milki.include-once.org/streamtuner2/streamtuner2-$version.rpm"
    },
    "releases": [
        {
            "version": "2.1.2",
            "state": "stable",
            "scope": "minor feature",
            "changes": "Radio list retrieval from Radionomys renewed Shoutcast have been fixed. The Live365 plugin however was disabled. There's also support for iTunes Radio stations (via RoliSoft Radio Playlist API), and a new channel module "iCast.io" as seen in VLC. SurfMusic.de is now available in a localized English display. Shorter Youtube URLs are now used and the Wadsworth constant available. MyOggRadio.org API interaction was fixed. More online music services have been added in the links list. The new and slimmer search dialog offers scanning all channels or just current and doesn't overwrite categories anymore."
            "download": "http://sourceforge.net/projects/streamtuner2/files/?source=navbar",
            "published": "2014-07-31T01:00:00+0000"
        },
        {
            "version": "2.1.1",
            "state": "stable",
            "scope": "major feature",
            "changes": "YouTube and SurfMusik channels were added, MODarchive included, but Google/DMOZ removed. The Jamendo API now allows browsing genres and shows cover images. Internet-Radio extraction was fixed, and a custom caching API introduced for Xiph/ICEcast. The configuration dialog visualizes plugins and options more coherently now. A new logo was introduced, and many bugfixes applied.",
            "download": "http://sourceforge.net/projects/streamtuner2/files/?source=navbar",
            "published": "2014-05-28T16:31:00+0000"