Check-in [2590478319]
Overview
Comment: | Fetch all 5 available pages from Xiph directory. Rewrite to use more directed regex extraction mode. Minor help page updates. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
25904783193e3a41c8c7d30d4e96e2c4 |
User & Date: | mario on 2015-05-19 22:37:03 |
Other Links: | manifest | tags |
Context
2015-05-19
| ||
22:37 | Minor help page updates. check-in: 9b6aa021cd user: mario tags: trunk | |
22:37 | Fetch all 5 available pages from Xiph directory. Rewrite to use more directed regex extraction mode. Minor help page updates. check-in: 2590478319 user: mario tags: trunk | |
2015-05-18
| ||
22:21 | A bit more PEP8, without undoing all readability. check-in: 492cb2aacf user: mario tags: trunk | |
Changes
Modified Makefile from [75ad58880f] to [14bf4a5119].
︙ | ︙ | |||
82 83 84 85 86 87 88 | $(INST) help/str*2.1 -t /usr/share/man/man1/ # start locally st2: run run: MALLOC_CHECK_=2 PYTHONVERBOSE=2 python -B ./st2.py -D | > > | 82 83 84 85 86 87 88 89 90 | $(INST) help/str*2.1 -t /usr/share/man/man1/ # start locally st2: run run: MALLOC_CHECK_=2 PYTHONVERBOSE=2 python -B ./st2.py -D yelp: yelp help/index.page 2>/dev/null & |
Modified channels/xiph.py from [6ec5e242b7] to [c7435085e0].
1 2 3 4 5 6 | # encoding: UTF-8 # api: streamtuner2 # title: Xiph.org # description: ICEcast radios. Scans per JSON API, slow XML, or raw directory. # type: channel # url: http://dir.xiph.org/ | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # encoding: UTF-8 # api: streamtuner2 # title: Xiph.org # description: ICEcast radios. Scans per JSON API, slow XML, or raw directory. # type: channel # url: http://dir.xiph.org/ # version: 0.6 # category: radio # config: # { name: xiph_source, value: web, type: select, select: "cache=JSON cache srv|xml=Clunky XML blob|web=Forbidden fruits", description: "Source for station list extraction." } # priority: standard # png: # iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAg5JREFUOI2lk1tIE2AUx3+7CG1tlmlG1rSEHrKgEUF7yO40taQiRj10I4qKkOaT4hIUItuTkC8hpJAQtJCICrFpzEKw # h61eQorGNBOTzbEt16ZrnR5Wq3mZD/3heziX//983znngyyov+eSbHEA5WKBhs4BKVy9gsqajqwiCwo0dA5IQX5u2s4moliMPPV1nCeDzxgNBFDHE2wsKMPzsGVefobjcnO7RMfeMuL341ZBrNEGRmPqqjdvsbbf |
︙ | ︙ | |||
191 192 193 194 195 196 197 | elif by_format.get(cat): url = "http://dir.xiph.org/by_format/{}".format(by_format[cat]) elif cat: url = "http://dir.xiph.org/by_genre/{}".format(cat.title()) # Collect all result pages html = ahttp.get(url) | | > | | > < < | | | > | | | | | | | | > | | < < | | | | | | | | > > > > > > > > > > > | 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | elif by_format.get(cat): url = "http://dir.xiph.org/by_format/{}".format(by_format[cat]) elif cat: url = "http://dir.xiph.org/by_genre/{}".format(cat.title()) # Collect all result pages html = ahttp.get(url) for i in range(1,5): if html.find('page={}">{}</a></li>'.format(i, i+1)) < 0: break self.status(i/5.1) html += ahttp.get(url, {"search": cat.title(), "page": i}) try: html = html.encode("raw_unicode_escape").decode("utf-8") except: pass # Find streams r = [] rows = re.findall("""<tr\s+class="row\d*">(.+?)</tr>""", html, re.S) for html in rows: ls = self.rx_all( dict( homepage = """ class="name"> <a\s+href="(.*?)" """, title = """ class="name"> <a[^>]*> (.*?)</a> """, listeners = """ "listeners">\[(\d+) """, playing = """ "stream-description">(.*?)< """, tags = """ (?s) Tags: (.*?) </div> """, url = """ href="(/listen/\d+/listen.xspf)" """, bits = """ class="format"\s+title="([^"]+)" """, fmt = """ /by_format/([^"]+) """, ), html ) r.append(dict( genre = unhtml(ls["tags"]), title = unhtml(ls["title"]), homepage = ahttp.fix_url(ls["homepage"]), playing = unhtml(ls["playing"]), url = "http://dir.xiph.org{}".format(ls["url"]), listformat = "xspf", listeners = int(ls["listeners"]), bitrate = bitrate(ls["bits"]), format = mime_fmt(guess_format(ls["fmt"])), )) return r # Regex dict def rx_all(self, fields, src, flags=re.X): row = {} for k, v in fields.items(): m = re.search(v, src, flags) if m: row[k] = m.group(1) else: row[k] = "" return row # Static list of categories genres = [ "pop", [ "top40", "90s", "80s", "britpop", "disco", "urban", "party", |
︙ | ︙ |
Modified help/html/channels.html from [8205a3a87a] to [d55074ef89].
︙ | ︙ | |||
46 47 48 49 50 51 52 | <div class="linkdiv "><a class="linkdiv" href="surfmusik.html" title="SurfMusic"><span class="title">SurfMusic</span><span class="linkdiv-dash"> โ </span><span class="desc">International radio listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="modarchive.html" title="The MOD Archive"><span class="title">The MOD Archive</span><span class="linkdiv-dash"> โ </span><span class="desc">Tracker audio file collection.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="tunein.html" title="TuneIn"><span class="title">TuneIn</span><span class="linkdiv-dash"> โ </span><span class="desc">Radio and Podcast directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="ubuntuusersm.html" title="UbuntuUsers"><span class="title">UbuntuUsers</span><span class="linkdiv-dash"> โ </span><span class="desc">Wiki list of radio stations</span></a></div> <div class="linkdiv "><a class="linkdiv" href="xiph.html" title="Xiph.org"><span class="title">Xiph.org</span><span class="linkdiv-dash"> โ </span><span class="desc">ICEcast radio directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="youtube.html" title="Youtube"><span class="title">Youtube</span><span class="linkdiv-dash"> โ </span><span class="desc">Youtube music/video listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="filtermusic.html" title="filtermusic"><span class="title">filtermusic</span><span class="linkdiv-dash"> โ </span><span class="desc">Selection of the best radio stations</span></a></div> | < | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <div class="linkdiv "><a class="linkdiv" href="surfmusik.html" title="SurfMusic"><span class="title">SurfMusic</span><span class="linkdiv-dash"> โ </span><span class="desc">International radio listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="modarchive.html" title="The MOD Archive"><span class="title">The MOD Archive</span><span class="linkdiv-dash"> โ </span><span class="desc">Tracker audio file collection.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="tunein.html" title="TuneIn"><span class="title">TuneIn</span><span class="linkdiv-dash"> โ </span><span class="desc">Radio and Podcast directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="ubuntuusersm.html" title="UbuntuUsers"><span class="title">UbuntuUsers</span><span class="linkdiv-dash"> โ </span><span class="desc">Wiki list of radio stations</span></a></div> <div class="linkdiv "><a class="linkdiv" href="xiph.html" title="Xiph.org"><span class="title">Xiph.org</span><span class="linkdiv-dash"> โ </span><span class="desc">ICEcast radio directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="youtube.html" title="Youtube"><span class="title">Youtube</span><span class="linkdiv-dash"> โ </span><span class="desc">Youtube music/video listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="filtermusic.html" title="filtermusic"><span class="title">filtermusic</span><span class="linkdiv-dash"> โ </span><span class="desc">Selection of the best radio stations</span></a></div> <div class="linkdiv "><a class="linkdiv" href="itunes.html" title="iTunes Radios via RS"><span class="title">iTunes Radios via RS</span><span class="linkdiv-dash"> โ </span><span class="desc">iTunes (RoliSoft Playlists)</span></a></div> </div></div></div></div></div> </div></div> <div id="homepage" class="sect"><div class="inner"> <div class="hgroup"><h2 class="title"><span class="title">Channel service homepage</span></h2></div> <div class="region"><div class="contents"><p class="p">You can dobule click the channel tab to visit the channel/directory homepage. Alternatively there is an entry in the <span class="gui">Channel</span> menu.</p></div></div> |
︙ | ︙ |
Modified help/html/configuration.html from [1a042d5b7d] to [390f4e28ed].
︙ | ︙ | |||
14 15 16 17 18 19 20 | <div class="region"> <div class="contents"> <p class="p"> There are various options for streamtuner2, available under <span class="guiseq"><span class="gui">Edit</span>ย โธ <span class="gui">Preferences</span></span> or via <span class="key"><kbd>F12</kbd></span>. </p> <p class="p"><span class="media"><span class="media media-image"><img src="img/configtabs.png" class="media media-inline" alt=""></span></span></p> <div class="terms"><div class="inner"> | | | < | | | | | | 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 | <div class="region"> <div class="contents"> <p class="p"> There are various options for streamtuner2, available under <span class="guiseq"><span class="gui">Edit</span>ย โธ <span class="gui">Preferences</span></span> or via <span class="key"><kbd>F12</kbd></span>. </p> <p class="p"><span class="media"><span class="media media-image"><img src="img/configtabs.png" class="media media-inline" alt=""></span></span></p> <div class="terms"><div class="inner"> <div class="title title-terms"><h2><span class="title">It's grouped into:</span></h2></div> <div class="region"><dl class="terms"> <dt class="terms">๐ Player</dt> <dd class="terms"><p class="p">Associates media formats to audio player applications or recording tools.</p></dd> <dt class="terms">โ Options</dt> <dd class="terms"><p class="p">Influences the display of all stream/station lists, and contains some behaviour and system settings.</p></dd> <dt class="terms">๐ป Channel Plugins</dt> <dd class="terms"><p class="p">Allows to enable or disable channel tabs. Each can have specific options, which can be configured here.</p></dd> <dt class="terms">๐ Feature Plugins</dt> <dd class="terms"><p class="p">Another class of plugins enables internal functions, or adds extra menu entries, or further configuration options.</p></dd> <dt class="terms">๐ฆ Add</dt> <dd class="terms"><p class="p">The <span class="link"><a href="pluginmanager2.html" title="Plugin Manager 2">Plugin Manager 2</a></span> adds another tab for updating or installing new plugins.</p></dd> </dl></div> </div></div> </div> <div id="apps" class="sect"><div class="inner"> <div class="hgroup"><h2 class="title"><span class="title">Player application settings</span></h2></div> <div class="region"><div class="contents"> <p class="p">MIME types are categorized identifiers for file types. <span class="var">Audio/mpeg</span> for example represents MP3 files, and <span class="var">audio/ogg</span> means OGG Vorbis. And the player setting dialog simply associates an audio type with a playback application:</p> <div class="table"><div class="inner"><div class="region"><table class="table"> <thead><tr> <td><p class="p">Format</p></td> <td style="border-left-style: solid;"><p class="p">Application</p></td> </tr></thead> <tr> |
︙ | ︙ | |||
100 101 102 103 104 105 106 | </tr> <tr class="shade"> <td style="border-top-style: solid;"><p class="p"><span class="var">video/youtube</span></p></td> <td style="border-top-style: solid;border-left-style: solid;"><p class="p"><span class="cmd">xterm -e "youtube-dl %srv"</span></p></td> </tr> </table></div></div></div> <p class="p">To define a target directory, you can often add commandline arguments to each. Also it's typically | | < | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | </tr> <tr class="shade"> <td style="border-top-style: solid;"><p class="p"><span class="var">video/youtube</span></p></td> <td style="border-top-style: solid;border-left-style: solid;"><p class="p"><span class="cmd">xterm -e "youtube-dl %srv"</span></p></td> </tr> </table></div></div></div> <p class="p">To define a target directory, you can often add commandline arguments to each. Also it's typically helpful to leave the xterm prefix on, so you can follow the processing state.</p> <div class="links topiclinks"><div class="inner"><div class="region"><div class="linkdiv "><a class="linkdiv" href="recording.html" title="Recording"><span class="title">Recording</span><span class="linkdiv-dash"> โ </span><span class="desc">Save radio songs as MP3 files via streamripper.</span></a></div></div></div></div> </div></div> </div></div> <div id="gui" class="sect"><div class="inner"> <div class="hgroup"><h2 class="title"><span class="title">Display/GUI options</span></h2></div> <div class="region"><div class="contents"> <div class="terms"><div class="inner"> |
︙ | ︙ | |||
136 137 138 139 140 141 142 | <dt class="terms">Prefer HTML traversing (PyQuery) over regex</dt> <dd class="terms"><p class="p">Some channels provide proper APIs to fetch station lists. Others are just websites that require scraping listings out. Most channel tabs provide two alternative methods for that. The DOM/HTML selection method is sometimes slower, but more reliable. As fallback streamtuner2 plugins often use a regex to match text. Occassionally the regex method is surprisingly more exact, because directory services often use frightful unstructured HTML. If available, both methods are tried. You can influence the order with this setting, and thus speed it up.</p></dd> | | > > > > | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | <dt class="terms">Prefer HTML traversing (PyQuery) over regex</dt> <dd class="terms"><p class="p">Some channels provide proper APIs to fetch station lists. Others are just websites that require scraping listings out. Most channel tabs provide two alternative methods for that. The DOM/HTML selection method is sometimes slower, but more reliable. As fallback streamtuner2 plugins often use a regex to match text. Occassionally the regex method is surprisingly more exact, because directory services often use frightful unstructured HTML. If available, both methods are tried. You can influence the order with this setting, and thus speed it up.</p></dd> <dt class="terms">[<span class="input">500</span>] Limit stream number</dt> <dd class="terms"><p class="p"> Constraints the length of station lists per category. The number of stations option is not honored by all channel plugins. Often it's not possible to load more or fewer station entries. Some plugins have own settings (in the 'Plugins' section) even. For the major plugins this however limits how many scrollable entries appear in the stream lists.</p></dd> <dt class="terms">Retain deleted stations</dt> <dd class="terms"><p class="p">When enabled, keeps old station entries when updating/reloading a category/genre. Services often forget stations or throws them out when inavailable. With this option enabled, these entries are kept in streamtuner2 as strikethrough entries (often at the end of the list).</p></dd> <dt class="terms">Update favouries from freshened URLs</dt> <dd class="terms"><p class="p">Streaming URLs in bookmarked stations get renewed on category reloads/updates. This isn't very reliable, as often station titles change together with the streaming URLs.</p></dd> <dt class="terms">Save station lists after updates</dt> <dd class="terms"><p class="p">After reloading (<span class="key"><kbd>F5</kbd></span>) the updated station lists are autoamtically saved. For favicon updates or drag and drop events this only happens automatically when this option is set.</p></dd> </dl></div> </div></div> <div class="terms"><div class="inner"> <div class="title title-terms"><h3><span class="title">Playlist</span></h3></div> <div class="region"><dl class="terms"> <dt class="terms">Reuse .m3u/.pls files</dt> <dd class="terms"><p class="p">When converting online station playlists, |
︙ | ︙ |
Modified help/html/dirble.html from [eb6889438c] to [679737f4dc].
︙ | ︙ | |||
23 24 25 26 27 28 29 | <p class="p">Dirble.com is another radio station directory, made up of user-contributed content, and automatic streaming server polling.</p> <p class="p">It provides a JSON API, which as of v2 has a lot of unneeded meta information and internal ids. But it's actually nicer to scan, and contains even station homepages now.</p> <div class="note" title="Note"><div class="inner"><div class="region"><div class="contents"><p class="p">The config option for a custom API key is perhaps redundant. Should streamtuner2 -D however reveal an error, you | | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <p class="p">Dirble.com is another radio station directory, made up of user-contributed content, and automatic streaming server polling.</p> <p class="p">It provides a JSON API, which as of v2 has a lot of unneeded meta information and internal ids. But it's actually nicer to scan, and contains even station homepages now.</p> <div class="note" title="Note"><div class="inner"><div class="region"><div class="contents"><p class="p">The config option for a custom API key is perhaps redundant. Should streamtuner2 -D however reveal an error, you can however configure your own account there.</p></div></div></div></div> </div> <div class="sect sect-links" role="navigation"> <div class="hgroup"></div> <div class="contents"><div class="links guidelinks"><div class="inner"> <div class="title"><h2><span class="title">More Information</span></h2></div> <div class="region"><ul> <li class="links "><a href="channels.html#list" title="Available channels">Available channels</a></li> |
︙ | ︙ |
Modified help/html/dragndrop.html from [3bc0a5d01f] to [c6fcc988d0].
︙ | ︙ | |||
22 23 24 25 26 27 28 | stream entry, then drag it out to the desktop, file manager or directly into VLC or any running music player. That'll usually copy a stream/station address directly.</p> <p class="p">Now it's not guaranteed to work with all applications or file managers, as X11/Gtk DND support is somewhat arcane and wonky. You may specifically have to adapt the default export format for this. Generally a XSPF or PLS file gets created for file managers. | | | | | | 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 | stream entry, then drag it out to the desktop, file manager or directly into VLC or any running music player. That'll usually copy a stream/station address directly.</p> <p class="p">Now it's not guaranteed to work with all applications or file managers, as X11/Gtk DND support is somewhat arcane and wonky. You may specifically have to adapt the default export format for this. Generally a XSPF or PLS file gets created for file managers. While VLC is one of the few applications that understands direct playlist URLs or literal M3U/PLS payloads even.</p> </div> <div id="import" class="sect"><div class="inner"> <div class="hgroup"><h2 class="title"><span class="title">Importing</span></h2></div> <div class="region"><div class="contents"> <p class="p">Playlist importing also works mostly. Here the action module takes care to unpack PLS, XPSF or M3U files and a few other formats. If you drag in streams/playlists from other applications, it'll usually be expanded.</p> <div class="note note-warning" title="Warning"><div class="inner"><div class="region"><div class="contents"><p class="p">Take note that Streamtuner2 is not intended as playlist manager though. It will only accept radio streaming lists and discard local MP3/Ogg files.</p></div></div></div></div> <p class="p">The import capabilities also allow to move a station entry from one of the channel tabs into your bookmarks list. Simply drag an entry over the "bookmarks" notebook tab then further along into the favourite list. - While this also works the other way round, it doesn't make sense to add bookmarks to Shoutcast/Xiph/etc. Because when their lists get refreshed (<span class="key"><kbd>F5</kbd></span>) all custom entries are usually dropped.</p> </div></div> </div></div> <div id="configuration" class="sect"><div class="inner"> <div class="hgroup"><h2 class="title"><span class="title">Export format configuration</span></h2></div> <div class="region"><div class="contents"> <p class="p">Use <span class="key"><kbd>F12</kbd></span> and change the DND export format. Again PLS is most universal, XSPF most complete, but other formats |
︙ | ︙ |
Modified help/html/index.html from [fdcf65fb91] to [00b071231d].
︙ | ︙ | |||
43 44 45 46 47 48 49 | <div class="linkdiv "><a class="linkdiv" href="surfmusik.html" title="SurfMusic"><span class="title">SurfMusic</span><span class="linkdiv-dash"> โ </span><span class="desc">International radio listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="modarchive.html" title="The MOD Archive"><span class="title">The MOD Archive</span><span class="linkdiv-dash"> โ </span><span class="desc">Tracker audio file collection.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="tunein.html" title="TuneIn"><span class="title">TuneIn</span><span class="linkdiv-dash"> โ </span><span class="desc">Radio and Podcast directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="ubuntuusersm.html" title="UbuntuUsers"><span class="title">UbuntuUsers</span><span class="linkdiv-dash"> โ </span><span class="desc">Wiki list of radio stations</span></a></div> <div class="linkdiv "><a class="linkdiv" href="xiph.html" title="Xiph.org"><span class="title">Xiph.org</span><span class="linkdiv-dash"> โ </span><span class="desc">ICEcast radio directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="youtube.html" title="Youtube"><span class="title">Youtube</span><span class="linkdiv-dash"> โ </span><span class="desc">Youtube music/video listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="filtermusic.html" title="filtermusic"><span class="title">filtermusic</span><span class="linkdiv-dash"> โ </span><span class="desc">Selection of the best radio stations</span></a></div> | < | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <div class="linkdiv "><a class="linkdiv" href="surfmusik.html" title="SurfMusic"><span class="title">SurfMusic</span><span class="linkdiv-dash"> โ </span><span class="desc">International radio listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="modarchive.html" title="The MOD Archive"><span class="title">The MOD Archive</span><span class="linkdiv-dash"> โ </span><span class="desc">Tracker audio file collection.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="tunein.html" title="TuneIn"><span class="title">TuneIn</span><span class="linkdiv-dash"> โ </span><span class="desc">Radio and Podcast directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="ubuntuusersm.html" title="UbuntuUsers"><span class="title">UbuntuUsers</span><span class="linkdiv-dash"> โ </span><span class="desc">Wiki list of radio stations</span></a></div> <div class="linkdiv "><a class="linkdiv" href="xiph.html" title="Xiph.org"><span class="title">Xiph.org</span><span class="linkdiv-dash"> โ </span><span class="desc">ICEcast radio directory.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="youtube.html" title="Youtube"><span class="title">Youtube</span><span class="linkdiv-dash"> โ </span><span class="desc">Youtube music/video listings.</span></a></div> <div class="linkdiv "><a class="linkdiv" href="filtermusic.html" title="filtermusic"><span class="title">filtermusic</span><span class="linkdiv-dash"> โ </span><span class="desc">Selection of the best radio stations</span></a></div> <div class="linkdiv "><a class="linkdiv" href="itunes.html" title="iTunes Radios via RS"><span class="title">iTunes Radios via RS</span><span class="linkdiv-dash"> โ </span><span class="desc">iTunes (RoliSoft Playlists)</span></a></div> </div> </div></div></div></div></div> </div></div> <div id="functions" class="sect"><div class="inner"> <div class="hgroup"><h2 class="title"><span class="title">Functions</span></h2></div> <div class="region"> |
︙ | ︙ |
Modified help/html/recording.html from [ff6bd6ba77] to [373c27967f].
︙ | ︙ | |||
54 55 56 57 58 59 60 | <div class="list"><div class="inner"><div class="region"><ul class="list"><li class="list"><p class="p"><span class="cmd">xterm -e "streamripper -A -s 3600 -d ~/Music/ %srv"</span></p></li></ul></div></div></div> </li> <li class="steps"> <p class="p">Pretend to be an audio player (in case recording is blocked):</p> <div class="list"><div class="inner"><div class="region"><ul class="list"><li class="list"><p class="p"><span class="cmd">streamripper -u 'WinampMPEG/5.0' %srv</span></p></li></ul></div></div></div> </li> </ol></div></div></div> | | > > | 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <div class="list"><div class="inner"><div class="region"><ul class="list"><li class="list"><p class="p"><span class="cmd">xterm -e "streamripper -A -s 3600 -d ~/Music/ %srv"</span></p></li></ul></div></div></div> </li> <li class="steps"> <p class="p">Pretend to be an audio player (in case recording is blocked):</p> <div class="list"><div class="inner"><div class="region"><ul class="list"><li class="list"><p class="p"><span class="cmd">streamripper -u 'WinampMPEG/5.0' %srv</span></p></li></ul></div></div></div> </li> </ol></div></div></div> <p class="p">Whenever you leave out the <span class="cmd">xterm</span> prefix, it runs silently in the background. Common xterm alternatives are <span class="cmd">x-terminal-emulator</span>, or <span class="cmd">rxvt</span>, <span class="cmd">gnome-terminal</span>, and <span class="cmd">xfce4-terminal</span> etc.</p> <p class="p">See the streamripper(1) man page or its <span class="link"><a href="http://streamripper.sourceforge.net/faq.php" title="http://streamripper.sourceforge.net/faq.php">FAQ</a></span> for more tips.</p> </div></div> </div></div> <div id="" class="sect"><div class="inner"> <div class="hgroup"><h2 class="title"><span class="title">fIcy/fPls</span></h2></div> <div class="region"><div class="contents"> |
︙ | ︙ |
Modified help/html/xiph.html from [7ba00185db] to [475d58c6ed].
︙ | ︙ | |||
78 79 80 81 82 83 84 85 86 87 88 89 90 91 | something which Xiph doesn't approve of. But the drawbacks of their alternative offerings are too severe and user-unfriendly; which is why there's this raw HTML extraction mode now.</p> <p class="p">The website listings contain full station homepages and a few more extras. In this mode we can even acceess the XSPF playlist formats directly. Both, the server search function, or browsing by audio/video format are supported. </p> </dd> </dl></div></div></div> </dd> </dl></div></div></div></div></div> </div></div> <div class="sect sect-links" role="navigation"> <div class="hgroup"></div> | > > | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | something which Xiph doesn't approve of. But the drawbacks of their alternative offerings are too severe and user-unfriendly; which is why there's this raw HTML extraction mode now.</p> <p class="p">The website listings contain full station homepages and a few more extras. In this mode we can even acceess the XSPF playlist formats directly. Both, the server search function, or browsing by audio/video format are supported. </p> <div class="note" title="Note"><div class="inner"><div class="region"><div class="contents"><p class="p">A miximum of 100 entries get fetched in this mode however (which is 5 pages รก 20 entries).</p></div></div></div></div> </dd> </dl></div></div></div> </dd> </dl></div></div></div></div></div> </div></div> <div class="sect sect-links" role="navigation"> <div class="hgroup"></div> |
︙ | ︙ |