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

⌈⌋ branch:  streamtuner2


Check-in [c747c1119f]

Overview
Comment:Fix heaps of typos (as reported by Oliver).
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:c747c1119f4a1461e23b9cbd62bcc3078e958ae1
User & Date: mario on 2016-12-02 20:55:24
Other Links: manifest | tags
Context
2016-12-02
22:12
Use new logo in manual, merge introduction into first help section. check-in: c4e068fd3f user: mario tags: trunk
20:55
Fix heaps of typos (as reported by Oliver). check-in: c747c1119f user: mario tags: trunk
20:38
Updated install/uninstall scripts, py-requests path version-independent. check-in: 66efee91b0 user: mario tags: trunk
Changes

Modified help/channel_filtermusic.page from [c3121e9cf5] to [576dd74057].

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
        </list>

	<p>Most useful if you don't like to browse around, and want to
	listen to most popular stations.</p>

        <section id="options">	
        <title>Configuration</title>
	<p>Like the <link xref="channel_xiph">📻 Xiph plugin</link> this channel provides
	three fetch modes:</p>
        <list>
         <item><title>Website</title><p>Extract all streams from the web page
         directly.</p></item>
         <item><title>XML Data</title><p>Use <file>💾 list.2.0.xml</file> which
         the channel service provides directly.</p></item>
         <item><title>Buffered</title><p>Keeps the XML file in memory. (It







|







22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
        </list>

	<p>Most useful if you don't like to browse around, and want to
	listen to most popular stations.</p>

        <section id="options">	
        <title>Configuration</title>
	<p>Like the <link xref="xiph">📻 Xiph plugin</link> this channel provides
	three fetch modes:</p>
        <list>
         <item><title>Website</title><p>Extract all streams from the web page
         directly.</p></item>
         <item><title>XML Data</title><p>Use <file>💾 list.2.0.xml</file> which
         the channel service provides directly.</p></item>
         <item><title>Buffered</title><p>Keeps the XML file in memory. (It

Modified help/channel_internetradioorguk.page from [f47df4c392] to [081e6c5699].

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        <subtitle><link href="http://internet-radio.com/">//internet-radio.com/</link></subtitle>
        
	<p>Internet-Radio.com is a broad alternative to Shoutcast.</p>

	<list>
 	 <item><p>It has regained station homepages for most entries again.</p></item>
 	 <item><p>Genres are similiar to Shoutcast.</p></item>
 	 <item><p>Updating station lists is comperatively fast.</p></item>
 	 <item><p>Uses HTML extraction (regex or pyquery) internally.</p></item>
 	</list>

        <section id="options">
        <title>Configuration</title>
	<list>
 	 <item>







|







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        <subtitle><link href="http://internet-radio.com/">//internet-radio.com/</link></subtitle>
        
	<p>Internet-Radio.com is a broad alternative to Shoutcast.</p>

	<list>
 	 <item><p>It has regained station homepages for most entries again.</p></item>
 	 <item><p>Genres are similiar to Shoutcast.</p></item>
 	 <item><p>Updating station lists is comparatively fast.</p></item>
 	 <item><p>Uses HTML extraction (regex or pyquery) internally.</p></item>
 	</list>

        <section id="options">
        <title>Configuration</title>
	<list>
 	 <item>

Modified help/channel_jamendo.page from [a3cb7a760f] to [5986881320].

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
	<link type="guide" xref="configuration#plugins"/>
        <desc>Creative Commons music and artist hub.</desc>
</info>

<title>Jamendo</title>
<subtitle><link href="http://jamendo.com/">//jamendo.com/</link></subtitle>

<p>Jamendo is a Creative Comments licensing oriented music distributor. It
hosts audio files for individual musicians and artists.  It allows to list
albums, playlists, and individual tracks by genre.</p>

<list>
  <item><p>The new Jamendo v3.0 is now utilized, which is JSON based and easy to extract.</p></item>
  <item><p>Its radio list is static. It loops over randomized songs from each genre.</p></item>
  <item><p>There's a custom JSON playlist extractor (JAMJSON), to avoid preloading stream URLs for feeds/albums. While tracks/genre lists contain direct streaming addresses already.</p></item>







|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
	<link type="guide" xref="configuration#plugins"/>
        <desc>Creative Commons music and artist hub.</desc>
</info>

<title>Jamendo</title>
<subtitle><link href="http://jamendo.com/">//jamendo.com/</link></subtitle>

<p>Jamendo is a Creative Commons licensing oriented music distributor. It
hosts audio files for individual musicians and artists.  It allows to list
albums, playlists, and individual tracks by genre.</p>

<list>
  <item><p>The new Jamendo v3.0 is now utilized, which is JSON based and easy to extract.</p></item>
  <item><p>Its radio list is static. It loops over randomized songs from each genre.</p></item>
  <item><p>There's a custom JSON playlist extractor (JAMJSON), to avoid preloading stream URLs for feeds/albums. While tracks/genre lists contain direct streaming addresses already.</p></item>

Modified help/channel_myoggradio.page from [96023ec708] to [b979cd50c5].

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
source internet radio directory project.</p>

<p>Since it provides its station list as JSON it's very well supported.</p>

<section>
  <title>Sharing is caring</title>
  <p>To help with populating the directory further,
  streamtuner2 provides an option to share radion station links.
  Use the <guiseq><gui>Station</gui> <gui>Share on MyOggRadio...</gui></guiseq>
  context menu entry to upload a selected radio (e.g. from your bookmarks).</p>
</section>

<section>
  <title>Personal</title>
  <p>The personal section is empty per default. You need to specify an user account
  in the settings dialog, and actually bookmark stations in the MyOggRadio web site.
  Shared entries aren't automatically in the <gui style="button">personal</gui> list.</p>

  <note style="tip"><p>MyOggRadio also has a neat cross-platform player:
  <link href="http://freshcode.club/projects/jmorp">JMyOggRadioPlayer</link>.</p></note>
</section>








|






|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
source internet radio directory project.</p>

<p>Since it provides its station list as JSON it's very well supported.</p>

<section>
  <title>Sharing is caring</title>
  <p>To help with populating the directory further,
  streamtuner2 provides an option to share radio station links.
  Use the <guiseq><gui>Station</gui> <gui>Share on MyOggRadio...</gui></guiseq>
  context menu entry to upload a selected radio (e.g. from your bookmarks).</p>
</section>

<section>
  <title>Personal</title>
  <p>The personal section is empty per default. You need to specify a user account
  in the settings dialog, and actually bookmark stations in the MyOggRadio web site.
  Shared entries aren't automatically in the <gui style="button">personal</gui> list.</p>

  <note style="tip"><p>MyOggRadio also has a neat cross-platform player:
  <link href="http://freshcode.club/projects/jmorp">JMyOggRadioPlayer</link>.</p></note>
</section>

Modified help/channel_radiobrowser.page from [c31c018720] to [ed1ca643bc].

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
<p>Radio-Browser is an ambitious community project. It collects as many
public internet radio stations as possible. It's free to use, has a well
documented API, with a simple JSON interface.</p>

<p>It's now the backend in many open source music players:</p>

<list>
  <item><p>Rhytmbox (for which it was originally intended)</p></item>
  <item><p>Streamtuner2 (obviously)</p></item>
  <item><p>RadioDroid (Android)</p></item>
  <item><p>DreamBox plugin</p></item>
  <item><p>Musicbox (Android)</p></item>
  <item><p>Gradio</p></item>
  <item><p>Kodi/XBMC</p></item>
</list>

<p>Since v0.3 / streamtuner2.2.0 you can now also share your favorite
stations directly. There's a new <guiseq><gui>context menu</gui> <gui>Share in
Radio-Browser</gui></guiseq>.</p>

<section id="options">
 <title>Configuration</title>
 
 <p> Instead of browsing by genres, you can switch to languages or
 countries.</p>

 <p> Note that you'll have to use <guiseq><gui>Channel</gui> <gui>Reload Category Tree (F5)</gui></guiseq>
 again to update the catogory view.</p>

</section>

<section id="advertisment">
 <note style="note"><p> With <link  href="https://play.google.com/store/apps/details?id=net.programmierecke.radiodroid2">RadioDroid</link>
 there's a mobile version to access and play from radio-browser.info
 directly. Get it on <link  href="https://f-droid.org/forums/topic/radiodroid/">F-Droid</link>
 or the Play store.</p></note>
</section>

</page>







|








|










|











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
<p>Radio-Browser is an ambitious community project. It collects as many
public internet radio stations as possible. It's free to use, has a well
documented API, with a simple JSON interface.</p>

<p>It's now the backend in many open source music players:</p>

<list>
  <item><p>Rhythmbox (for which it was originally intended)</p></item>
  <item><p>Streamtuner2 (obviously)</p></item>
  <item><p>RadioDroid (Android)</p></item>
  <item><p>DreamBox plugin</p></item>
  <item><p>Musicbox (Android)</p></item>
  <item><p>Gradio</p></item>
  <item><p>Kodi/XBMC</p></item>
</list>

<p>Since v0.3 (in streamtuner2 2.2.0) you can now also share your favorite
stations directly. There's a new <guiseq><gui>context menu</gui> <gui>Share in
Radio-Browser</gui></guiseq>.</p>

<section id="options">
 <title>Configuration</title>
 
 <p> Instead of browsing by genres, you can switch to languages or
 countries.</p>

 <p> Note that you'll have to use <guiseq><gui>Channel</gui> <gui>Reload Category Tree (F5)</gui></guiseq>
 again to update the category view.</p>

</section>

<section id="advertisment">
 <note style="note"><p> With <link  href="https://play.google.com/store/apps/details?id=net.programmierecke.radiodroid2">RadioDroid</link>
 there's a mobile version to access and play from radio-browser.info
 directly. Get it on <link  href="https://f-droid.org/forums/topic/radiodroid/">F-Droid</link>
 or the Play store.</p></note>
</section>

</page>

Modified help/channels.page from [e29b8eaa5f] to [14a71cdbc6].

35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
	<section id="list">
		<title>Available channels</title>
	</section>


	<section id="homepage">
	<title>Channel service homepage</title>
	<p>You can dobule click the channel tab to visit the channel/directory homepage.
	Alternatively there is an entry in the <gui>Channel</gui> menu.</p>
	</section>

	<section id="actions">
	<title>Channel menu actions</title>
	<terms>
		<item>







|







35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
	<section id="list">
		<title>Available channels</title>
	</section>


	<section id="homepage">
	<title>Channel service homepage</title>
	<p>You can double click the channel tab to visit the channel/directory homepage.
	Alternatively there is an entry in the <gui>Channel</gui> menu.</p>
	</section>

	<section id="actions">
	<title>Channel menu actions</title>
	<terms>
		<item>

Modified help/contrib_features.page from [c13105275b] to [68101f8af7].

68
69
70
71
72
73
74












75
76
77
78
79
80
81
...
125
126
127
128
129
130
131






132
133
134
135
<p>This plugin merely masks Streamtuner2 as an ordinary web browser when retrieving station lists.</p>
<list>
 <item><p> It's technically unneeded, as ST2 isn't stressful to directory websites and not blocked anywhere. </p></item>
 <item><p>It's only useful as additional privacy feature really, but shouldn't be used habitually. </p></item>
</list>
</section>













<section>
 <title>Other feature plugins</title>
 <list>
   <item><p><link xref="dragndrop">🔌 Drag and Drop</link></p></item>
   <item><p><link xref="favicon">🔌 Favicons</link></p></item>
   <item><p><link xref="global_key">🔌 Global key shortcut</link></p></item>
   <item><p><link xref="timer">🔌 Timer</link></p></item>
................................................................................
  </item>
  <item>
    <title>🔌 tmp_clean_multiurl</title>
    <p>Strips extra space-separate URLs from station list. (Currently only
    required for 📻 RadioSure channel. Later ST2 versions will likely support
    such entries per default again).</p>
  </item>






</terms>
</section>

</page>







>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>




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
...
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<p>This plugin merely masks Streamtuner2 as an ordinary web browser when retrieving station lists.</p>
<list>
 <item><p> It's technically unneeded, as ST2 isn't stressful to directory websites and not blocked anywhere. </p></item>
 <item><p>It's only useful as additional privacy feature really, but shouldn't be used habitually. </p></item>
</list>
</section>

<section>
<title>🔌 History</title>
<p>Provides the small "history" category in the bookmarks tab. The length of
which is configurable (defaults to 20).</p>
</section>

<section>
<title>🔌 Links to directory services</title>
<p>Adds a list of weblinks to other online music services in the "links" category
within the bookmarks tab.</p>
</section>

<section>
 <title>Other feature plugins</title>
 <list>
   <item><p><link xref="dragndrop">🔌 Drag and Drop</link></p></item>
   <item><p><link xref="favicon">🔌 Favicons</link></p></item>
   <item><p><link xref="global_key">🔌 Global key shortcut</link></p></item>
   <item><p><link xref="timer">🔌 Timer</link></p></item>
................................................................................
  </item>
  <item>
    <title>🔌 tmp_clean_multiurl</title>
    <p>Strips extra space-separate URLs from station list. (Currently only
    required for 📻 RadioSure channel. Later ST2 versions will likely support
    such entries per default again).</p>
  </item>
  <item>
    <title>🔌 stop_button</title>
    <p>Adds the toolbar button to stop streamripper/fpls - same as in
    streamtuner1. Has become kind of redundant due to the newer
    <link xref="specbuttons">🔌 specbuttons</link> plugin.</p>
  </item>
</terms>
</section>

</page>

Modified help/favicon.page from [1c4a0dc225] to [5b234a7e90].

22
23
24
25
26
27
28
29

30
31
32
33
34
35
36
<p>Some channels (Jamendo or Radionomy) provide small album previews
or banners even. Whereas normal favicons are just 16x16 pixel images.</p>

<note><p>Downloaded image files are meanwhile all sanitized (internally
converted to ensure they're really image files).
Albeit that's not strictly necessary for modern Gtk versions. (But
better safe than sorry).
Images are kept in the <file>~/.config/streamtuner2/icons</file> directory.

</p></note>


<section id="configuration">
<title>Configuration options</title>

<terms>







|
>







22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<p>Some channels (Jamendo or Radionomy) provide small album previews
or banners even. Whereas normal favicons are just 16x16 pixel images.</p>

<note><p>Downloaded image files are meanwhile all sanitized (internally
converted to ensure they're really image files).
Albeit that's not strictly necessary for modern Gtk versions. (But
better safe than sorry).
Images are kept in the <file>~/.config/streamtuner2/icons</file> directory
(or below <file>%APPDATA%\</file> on Windows).
</p></note>


<section id="configuration">
<title>Configuration options</title>

<terms>

Modified help/introduction.page from [6a8c78f71e] to [0e01326a0c].

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<info>
	<link type="guide" xref="index#index"/>
        <desc>Basic usage instructions. Selecting a channel, category, and playing a radio.</desc>
</info>

	<title>Introduction</title>

	<p>Streamtuner2 is a simple browser for internet radios. It aquires its radio lists
	from various directory services. These are represented as "channel" tabs in the main
	window. The category/genre lists are in the left pane, and associated stations right
	to them.</p>

	<media src="img/mainwindow.png" type="image" mime="image/png" />

        <section id="play">







|







5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<info>
	<link type="guide" xref="index#index"/>
        <desc>Basic usage instructions. Selecting a channel, category, and playing a radio.</desc>
</info>

	<title>Introduction</title>

	<p>Streamtuner2 is a simple browser for internet radios. It acquires its radio lists
	from various directory services. These are represented as "channel" tabs in the main
	window. The category/genre lists are in the left pane, and associated stations right
	to them.</p>

	<media src="img/mainwindow.png" type="image" mime="image/png" />

        <section id="play">

Modified help/pluginmanager2.page from [dd06743fce] to [09f72a2f34].

50
51
52
53
54
55
56
57
58
59

60
61
62
63
64
65
66
     	  </list>
     	</item>
   	</list>
	</section>

	<section id="userplugins">
	<title>User plugins</title>
	<p>Downloaded plugins are stored in <file>~/.config/streamtuner2/plugins</file>.
	To remove them, delete the individual *.py files there manually. But
	keep the <file>__init__.py</file> stub.</p>

	<note style="bug"><p>Core plugins (those which are installed
	system-wide) can often also be updated. The user-saved plugin will
	take precedence after a restart. However the version number in
	PluginManager2 still shows the system-installed/older version
	regardless.</p>
	<p>So you'll have to take care to eventually refresh/delete outdated user plugins,
	whenever you install a newer Streamtuner2 version.</p></note>







|


>







50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
     	  </list>
     	</item>
   	</list>
	</section>

	<section id="userplugins">
	<title>User plugins</title>
	<p>Downloaded plugins are stored in <file>~/.config/streamtuner2/plugins/</file>.
	To remove them, delete the individual *.py files there manually. But
	keep the <file>__init__.py</file> stub.</p>
	<p>On Windows they're stored in <file>%APPDATA%\streamtuner2\plugins\</file>.</p>
	<note style="bug"><p>Core plugins (those which are installed
	system-wide) can often also be updated. The user-saved plugin will
	take precedence after a restart. However the version number in
	PluginManager2 still shows the system-installed/older version
	regardless.</p>
	<p>So you'll have to take care to eventually refresh/delete outdated user plugins,
	whenever you install a newer Streamtuner2 version.</p></note>

Modified help/timer.page from [a6a3597ae0] to [fadecdda8a].

9
10
11
12
13
14
15
16
17
18

19
20
21
22
23
24
25
..
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
	<link type="guide" xref="index#extra"/>
        <desc>Programming recurring play and recording events.</desc>
</info>

<section id="intro">

	<p>You can programm play/recording events with the timer plugin. Simply select a station
	and choose <guiseq><gui>Station</gui> <gui>Extensions</gui> <gui>Add timer...</gui></guiseq>.
	A small popup will ask for a data/time string. If you press <key>OK</key> the station
	and the programmed time will be stored in the bookmarks channel in the "timer" category.</p>

	
	<p><media type="image" src="img/timer.png" mime="image/png">Timer</media></p>

        <note style="tip"><p>Note that streamtuner2 must be running for the programmed timer events to work.
	(In a future version there might be the option to have it handled by the system cron
	daemon.)</p></note>
</section>
................................................................................
	<p>The time and date specificators follow a simple scheme. It's always one or more day names
	followed by a clock range, and finally the action.</p>
	<p>For example "<code>Mon,Tue,Wed</code>" will make the event occour on the first
	three days of each week, while just "Fri" would limit it to Fridays.</p>
	<p>A clock range of "<code>18:00-20:00</code>"
	would start the event at 18 o'clock and last it two hours. Note that for "play" events, the end
	time is irrelevant, since streamtuner2 can't kill your audio player anyway.</p>
        <p>The end time is only important, if you replace "play" with the word "<code>record</code>"
        in the timer event string. This runs streamripper instead and limits the recording time.</p>
	</section>

	<section id="editing">
	<title>Editing events</title>
        <p>You can remove entries from the "timer" list again. Use the normal <guiseq><gui>Edit</gui> <gui>Delete</gui></guiseq> for
	that. It's also possible to modify the date+time strings by editing the stream info and
	the specification in the "playing" field.</p>

	<note style="warning"><p>However, such changes don't take effect until you restart streamtuner2. The timer
	events are only scheduled when adding a new event, or on starting streamtuner2.</p></note>
	</section>

</page>







|

|
>







 







|









|




9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
..
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
	<link type="guide" xref="index#extra"/>
        <desc>Programming recurring play and recording events.</desc>
</info>

<section id="intro">

	<p>You can programm play/recording events with the timer plugin. Simply select a station
	and choose <guiseq><gui>Station</gui> <gui>Add timer...</gui></guiseq>.
	A small popup will ask for a data/time string. If you press <key>OK</key> the station
	and the programmed time will be stored in the bookmarks channel in the "timer" category.
	<em>Please take note of the required text format</em>.</p>
	
	<p><media type="image" src="img/timer.png" mime="image/png">Timer</media></p>

        <note style="tip"><p>Note that streamtuner2 must be running for the programmed timer events to work.
	(In a future version there might be the option to have it handled by the system cron
	daemon.)</p></note>
</section>
................................................................................
	<p>The time and date specificators follow a simple scheme. It's always one or more day names
	followed by a clock range, and finally the action.</p>
	<p>For example "<code>Mon,Tue,Wed</code>" will make the event occour on the first
	three days of each week, while just "Fri" would limit it to Fridays.</p>
	<p>A clock range of "<code>18:00-20:00</code>"
	would start the event at 18 o'clock and last it two hours. Note that for "play" events, the end
	time is irrelevant, since streamtuner2 can't kill your audio player anyway.</p>
        <p>The end time is only important if you replace "play" with the word "<code>record</code>"
        in the timer event string. This runs streamripper instead and limits the recording time.</p>
	</section>

	<section id="editing">
	<title>Editing events</title>
        <p>You can remove entries from the "timer" list again. Use the normal <guiseq><gui>Edit</gui> <gui>Delete</gui></guiseq> for
	that. It's also possible to modify the date+time strings by editing the stream info and
	the specification in the "playing" field.</p>

	<note style="warning"><p>However, such edits don't take effect until you restart streamtuner2. The timer
	events are only scheduled when adding a new event, or on starting streamtuner2.</p></note>
	</section>

</page>