1 2 3 4 5 6 7 8 9 10 11 12 13 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 123 124 125 126 127 128 129 130 131 132 133 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 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 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 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
|
STREAMRIPPER(1) STREAMRIPPER(1)
NAME
streamripper - rip shoutcast radio streams to mp3 files
SYNOPSIS
streamripper URL [options]
DESCRIPTION
Streamripper records shoutcast and icecast compatible
streams. It uses meta data within a shoutcast stream to
determine the beginning and end of each song, and stores
the songs on your hard disk as individual mp3 files. In
addition, streamripper includes a relay server for listen
ing to the station while you are recording.
OPTIONS
-h Print help and exit.
-v Print version info and quit.
-d dir The destination directory.
Select a different base directory for ripping, just in
case you don't want to dump tons of mp3's into whatever
directory your at.
-s Don't create a directory for each stream.
Normally streamripper will make a directory with the same
name as the stream to place the tracks into, this disables
that.
-r [base port]
Create a relay server on base port, defaults to
port 8000
Creates a relay server on base port. if base port is not
specified it defaults to 8000, otherwise whatever you
entered for base port. Note that if the -z option is not
used, it will keep trying higher ports if the port is
unavailable.
-R num_conn
Maximum connections to relay stream.
In addition to creating a relay server, you can also con
trol how many clients are allowed to simultaneously con
nect. The default is 1 client, but if you specify the -R
option you can increase this number to <num_conn> clients.
If <num_conn> is set to 0, the number of connections is
limited only by your processor and network speed. The -R
option has no effect if -r was not used to create a relay
stream.
-z Don't scan for free ports if base port is not avail
Disables the "scan for free port" feature. use it if your
paranoid. or don't like ports being open.
-p url Use HTTP proxy server at <url>
If your behind a proxy server, enter it here. This hasn't
been tested in over 6 months. but it should still work.
Please till me if it doesn't.
-a [file]
Rip to single file.
The default mode of operation is to separate the each
track into a separate file. But sometimes this is not
what you want. Sometimes you want the stream recorded to
a single (big) file without splitting into tracks. The -a
option does this. If you use -a without including the
[file], a timestamped filename will automatically be used.
-A Don't create individual tracks.
The default mode of operation is to create one file for
each track. But sometimes you don't want these files.
For example, you might prefer a single file (using the -a
option), or you want to use streamripper as a relay (using
the -r option), without creating these files. Using the
-A option, the individual files for each track are not
created.
-o Overwrite tracks in complete directory.
When streamripper rips tracks they are first in the incom
plete directory. if the tracks finishes properly it moves
over to the main directory, but if they track is already
there it doesn't. this make streamripper copy over tracks
that already exist in the main directory. I didn't make
this default because if your ripping a stream for a long
time (trying to get the whole thing) it helps to see the
incomplete directory fill up with tracks you already have.
One the incomplete directory is as large (or larger) then
your main directory you can be pretty sure you've got the
whole stream.
-t Don't overwrite tracks in incomplete directory.
Normally streamripper writes the files in the incomplete
directory, and then moves it to the base directory (the
complete directory) when it is done. If the file with the
name of the track already exists in incomplete, it will
overwrite the old track. When you use the -t flag, how
ever, this will tell streamripper to backup the existing
file in incomplete (appending a version number), and then
create the new file.
This is useful for streams that don't have meta-data.
Because these streams only have a single file, reconnects
will cause overwriting the existing file, which is not
desired.
-T Truncate completed tracks in incomplete directory.
When you are not overwriting files in the complete folder,
the duplicate files will normally stay in the incomplete
folder. This option tells streamripper to truncate the
files to zero bytes in the incomplete folder if they are a
duplicate.
-c Don't auto-reconnect.
Normally streamripper will be very aggressive and try to
re-connect to a dropped stream. This option disables this
behavior.
-l seconds
Run for a predetermined length of time, in seconds.
Usually, streamripper runs until it crashes. Or rather, I
meant to say that it runs until you kill it, yes, I'm sure
that's what I meant. But you can instead tell streamrip
per to run for a certain length of time, and then exit
using this flag.
-M megabytes
Stop ripping after this many megabytes.
Use this flag to tell streamripper to rip a certain number
of megabytes, then stop.
-q Add sequence number to output filenames.
When the files are copied from incomplete to complete, the
filename can be prepended with a sequence number (begin
ning with 0001). This can be used to, for example, show
the order that the files were created.
-P prefix
Add prefix to each ripped file.
This prepends the prefix string to the filename of each
individual track file created by streamripper.
-i Don't add ID3V1 Tags to output file.
Mp3 files have two different kinds of header information
which describe the contents of the file: ID3V1 and ID3V2.
By default, both are included in the mp3 files generated
by streamripper, but you can choose not to include the
ID3V1 header if you like.
-u useragent
Use a different UserAgent than "Streamripper".
In the http request, streamripper includes a string that
identifies what kind of program is requesting the connec
tion. Be default it is the string "Streamripper/1.x".
Here you can decide to identify yourself as a different
agent if you like.
-w parse_file
Use customized parsing rules.
This tells streamripper to use custom meta-data parsing
rules. Without this flag, streamripper will use its
built-in parsing rules.
There are two cases where you want to do this. In the
first case, you are using a stream that changes the meta
data within a song. Usually this is a thank-you notice or
possibly an advertisement for an upcoming show. When this
happens, the current track will become split into frag
ments. To prevent this, you can tell streamripper to
ignore meta-data.
The second case you might want to use this is if the
artist and title information is sent in an unusual format.
For example, they might be separated by a comma instead of
a hyphen, or there might be an extra advertisement
attached to the end of the meta-data string. In this
case, you can tell streamripper how it should identify the
title, artist, album and track from the metadata string
using regular expressions.
See the file parse_rules.txt, which is included in your
distribution, for examples of the parse rules.
-k count
Skip over <count> tracks before starting to rip.
Sometimes the first few tracks generated by a stream are
not useful, because they are advertisements, the station
intro, broken songs, etc. Use this option and these
tracks won't be saved.
-m timeout
Timeout to restart connection.
Some streams will "hang", which means they haven't discon
nected, but they aren't sending any data. When this hap
pens, if you used the -m flag, streamripper will shut down
the stream and reconnect after <timeout> seconds of inac
tivity.
--debug
Save debugging log.
This creates a file called "gcs.txt" that contains all
sorts of debugging information.
--quiet
Don't write any text to the console, except error
messages.
--xs_silence_length=num
The volume must be less than xsd_min_volume for a
period of time greater than this.
--xs_search_window=num:num
This is how long to search for the silence. 1st
number is # msec before nominal center, 2nd number
is # msecs after nominal track change position.
--xs_offset=num
Offset from center of silence window.
--xs_padding=num:num
Amount to pad before and after splitpoint.
GETTING STARTED
The easiest way to get started is to find the URL of a
stream you want to rip, usually I find the URL by loading
it up in winamp or xmms and querying for the source URL.
(right clicking on the playlist) Once you have the URL you
can begin ripping.
streamripper http://205.188.245.132:8038
This would rip Monkey Radio (as of 1/10/2001), it places
the tracks into two directory's one called "Monkey Radio"
and a sub-directory "Monkey Radio/incomplete" the incom
plete directory is for tracks that streamripper does not
know the begging or end of. the first and last tracks your
rip for instance, would be in incomplete.
Also you can listen to the stream by creating a relay
server..
streamripper http://205.188.245.132:8038 -r
When the program starts it will display what port it's
relaying the stream on, it defaults to 8000 but you can
choose another port. To listen to your relay server open
up XMMS or Winamp and enter your machine name with the
port as you would any other stream.
SPLITPOINT DETECTION
Streamripper automatically splits tracks based on detec
tion of a silent near the meta interval where the track
changes. However, this method is imperfect, and sometimes
the track splitting occurs is too early or too late.
These options will fine tune the track splitting capabili
ties for streams that use cross-fading, which causes
streamripper's automatic silence detection routine to
fail.
Various --xs flags can be used to add an offset for
streams that have a meta interval that comes too early or
too late, to add extra padding to the beginning and end of
each song, and to decide where the length of the search
window and silence window.
DEFAULT SPLITTING
The default spitting algorithm is used when no silent
point can be found. Suppose you have a meta-int with
track change information at the time "mi" (see figure
below).
If the xs_offset is positive, the track separation point
"ts" is later the "mi" point. If xs_offset is negative,
"ts" is earlier than "mi". Once "ts" is determined, a
user-defined "prepad" and "postpad" are used to determine
where the next track begins "ntb", and where the previous
track ends "pte". The interval between "ntb" and "pte"
will be copied to both songs.
/mi
|
| /ts
|-----------|
xs_offset |
|
|
/ntb | /pte
|---------|---------|
prepad postpad
SILENCE SEPARATION
Splitting based on silence separation is similar to
default splitting, only slightly more complex. Again,
suppose you have a meta-int with track change information
at the time "mi" (see figure below).
A search window "search_win" is determined by the xs_off
set, pre_sw, and post_sw field. The beginning of the
search window is at: mi + xs_offset - pre_sw and the end
of the search window is at: mi + xs_offset + post_sw.
If there is a silent interval of length "silence_win"
within the "search_win", the center of "silence_win" is
selected as the track separation point "ts".
Once "ts" is determined, a user-defined "prepad" and
"postpad" are used to determine where the next track
begins "ntb", and where the previous track ends "pte".
The interval between "ntb" and "pte" will be copied to
both songs.
/mi
|
|-----------|
xs_offset |
|
ts\ |
|-------+-|---------| *search_win
pre_sw | post_sw
|
|---+---| *silence_win
|
/ntb | /pte
|-------------|---------|
prepad postpad
USAGE EXAMPLES
Rip from a stream:
streamripper URL
Rip from a stream for one hour:
streamripper URL -l 3600
Rip the stream, putting the mp3 files into the directory
/my/music/stream1:
streamripper URL -d /my/music/stream1 -s
Rip the stream, creating a single file and don't create
individual tracks:
streamripper URL -a -A
Rip from a stream and create a relay stream at port 9000:
streamripper URL -r 9000
Rip from a stream, creating a relay stream at port 8000,
and allowing twenty clients to connect:
streamripper URL -r -R 20
SPLITPOINT USAGE EXAMPLES
Each of my songs contain about 5 seconds of the previous
song. How can I fix this?
streamripper URL --xs_offset=5000
Each of my songs contain about 5 seconds of the next song.
How can I fix?
streamripper URL --xs_offset=-5000
Each of my songs contain between 5 and 10 seconds of the
previous song, but it depends on the song. How can I
include all of this zone within both songs, and edit them
later?
streamripper URL --xs_offset=7500 --xs_padding=2500:2500
or
streamripper URL --xs_offset=5000 --xs_padding=0:5000
RESOURCES
Please check out the following web sites. Linked to the
streamripper home page is a forum that can can be used to
chat and ask questions.
Streamripper home page:
http://streamripper.sourceforge.net/
Sourceforge project page
http://sourceforge.net/projects/streamripper
Shoutcast
http://www.shoutcast.com
Icecast
http://www.icecast.org
COPYING
Copyright (C) 2000-2002 Jon Clegg, (C) 2004-2005 Gregory
C. Sharp. Free use of this software is granted under the
terms of the GNU General Public License (GPL).
10 April 2005 STREAMRIPPER(1)
|