Democratic Underground Latest Greatest Lobby Journals Search Options Help Login
Google

recording/saving streaming audio?

Printer-friendly format Printer-friendly format
Printer-friendly format Email this thread to a friend
Printer-friendly format Bookmark this thread
Home » Discuss » DU Groups » Computers & Internet » Website, DB, & Software Developers Group Donate to DU
 
Bhaisahab Donating Member (1000+ posts) Send PM | Profile | Ignore Fri May-13-05 04:44 AM
Original message
recording/saving streaming audio?
is that possible? why i ask is, i am making a smallish home film on the road to iraq. i wanted audio recordings of doobya's speeches on WMD and iraq. I did a google search but could find only one good speech. the whitehouse website offers them in streaming form. which means i cannot download them. or can i? any wise guys out there who can tell me how to save streaming audio?
Refresh | 0 Recommendations Printer Friendly | Permalink | Reply | Top
welshTerrier2 Donating Member (1000+ posts) Send PM | Profile | Ignore Fri May-13-05 07:14 AM
Response to Original message
1. streamRipper
i've used streamRipper (for WinAmp) in the past to record internet radio stations ...

here's a link you can use to check it out: http://streamripper.sourceforge.net/
Printer Friendly | Permalink | Reply | Top
 
Bhaisahab Donating Member (1000+ posts) Send PM | Profile | Ignore Fri May-13-05 12:26 PM
Response to Reply #1
2. thanks welsh
i will definitely check it out. i was also wondering if this works with ram files? u know those 120 byte downloads upon clicking which real player streams content from the source? because i tried Super mp3 Recorder and that did not seem to work...
Printer Friendly | Permalink | Reply | Top
 
welshTerrier2 Donating Member (1000+ posts) Send PM | Profile | Ignore Fri May-13-05 01:09 PM
Response to Reply #2
3. no support for Real Player (.ram) files
Edited on Fri May-13-05 01:11 PM by welshTerrier2
you might be able to find some kind of converter if you're able to save the .ram file to your hard drive ... a google search turned up all kinds of links ... here's one for starters: http://www.allformp3.com/ram-mp3-recorder/ram-mp3-recorder.htm

from the streamRipper FAQ (http://streamripper.sourceforge.net/faq.php):

Q: What can I use Streamripper for?
A: You can use it to rip (copy) streams of the following kinds:

1. .mp3 Shoutcast streams - the kind of streams found on shoutcast.com.
2. .mp3 Icecast streams - a GNU GPL/Open Source version of Shoutcast. Both Icecast 1.x and Icecast 2.x are supported.
3. .nvs (Nullsoft Streaming Video) streams - which Winamp tv uses (but in older versions of streamripper, you'll have to manually change the filenames of the ripped files from .mp3 to .nsv to play them).
4. .aac Shoutcast/Icecast streams - the kind of streams found on tuner2.com. Streamripper can't rip RealAudio AAC streams.
5. .ogg streams - these are not yet fully supported. You can rip them to a single file, but you can't yet split them or relay them.

Streamripper can't help with ripping stuff like RealPlayer, Windows MediaPlayer, MusicMatch or anything else similar. Stop asking and go look at this forum post instead. The TechTV link is the one talking about how you can rip anything the hard way =)
Printer Friendly | Permalink | Reply | Top
 
BlueEyedSon Donating Member (1000+ posts) Send PM | Profile | Ignore Thu Aug-04-05 04:56 AM
Response to Original message
4. Total Recorder
Printer Friendly | Permalink | Reply | Top
 
benburch Donating Member (1000+ posts) Send PM | Profile | Ignore Thu Aug-11-05 07:45 PM
Response to Original message
5. What type of computer do you use?
here is a free perl script that does nicely;

#!/usr/bin/perl

# socket based hypertext version of UNIX cat


use strict;
use Socket;                   # include Socket module

use vars qw( $time $in_time $url $out $verbose);
no strict 'refs';
use Getopt::Long;
#my $in_time = time;
#$in_time += 20;

#### Main

# parse command line arguments
#getopts('hHrdt');

# print out usage if needed
#if (defined $opt_h || $#ARGV<0) { help(); }


# if it wasn't an option, it was a URL
#while($_ = shift @ARGV) {
#  hcat($_, $opt_r, $opt_H, $opt_d);
#}

GetOptions (
            'url=s'   => \$url,
            'time=s'  => \$in_time,
            'out=s'   => \$out,
#           'verbose'  => \$verbose;
            );

help() if !defined $url or !defined $in_time or !defined $out;

hcat ($url, $in_time, $out);

#####

# Subroutine to print out usage information


sub usage {
  print "usage: $0 --url=... --time=...
--out=...\n";
  print "       --url=http://some_valid_url\n";
  print "       --time=some integer (minutes)\n";
  print "       --out=/path-to/output_filename\n";
  print "       --verbose\n";
  exit(-1);
}


# Subroutine to print out help text along with usage
information


sub help {
  print "Get MP3 help\n\n";
  print "Based on hcat (Hypertext cat) from the O'REILLY
Web Clients book,\n";
  print "this simple program gets the data stream from a
remote web server\n";
  print "for a period of time and writes it to a file.
\n";
  print "It takes arguments --url, --time
--out.\n\n";


  usage();
}


# Given a URL, print out the data there


sub hcat {

  my ($full_url, $time_stop, $out_name)=@_;

  my $start_time;

  if ( -e $out_name ) {
      my ($base_name, $base_path, $file, $ext);
      $base_name = $2, $base_path = $1 if $out_name =~
/(.*)\/([\w\.\_\-]+)$/;

      if ( $base_name =~ /(.*)\.(.*)/ ) {
          $file = $1;
          $ext = $2;
      }
      else {
          $file = $base_name;
      }

      my $counter = 1;
      while ( -e $out_name ) {
          $out_name =
"$base_path/$file-$counter.$ext" if defined $ext;
          $out_name = "$base_path/$file-$counter" if
! defined $ext;
          $counter++;
      }
      print "\nWill write to $out_name\n";
   }

 open OUT, ">$out_name" or die "$!:
$out_name";
  binmode OUT;

  # if the URL isn't a full URL, assume that it is a http
request
  $full_url="http://$full_url" if ($full_url !~
                                
m/(\w+):\/\/([^\/:]+)(:\d*)?([^#]*)/);

  # break up URL into meaningful parts
  my @the_url = parse_URL($full_url);
  if (!defined @the_url) {
    print "Please use fully qualified valid URL\n";
    exit(-1);
  }

  # we're only interested in HTTP URL's
  return if ($the_url[0] !~ m/http/i);

  # connect to server specified in 1st parameter
  if (!defined open_TCP('F', $the_url[1], $the_url[2])) {
    print "Error connecting to web server:
$the_url[1]\n";
    exit(-1);
  }

 else {
     $time_stop = $time_stop * 60;
     $time_stop += time;
 }

  # request the path of the document to get
    print F "GET $the_url[3] HTTP/1.0\n";
    print F "Accept: */*\n";
    print F "User-Agent: funGetter/1.0\n\n";

  # skip the header data
    my $the_response=<F>;
                                                              

    if ( $the_response !~ /200/) {
    print "Server said: \"$the_response\" for
$full_url\nQuitting\n\n";
    exit;
      }

     while ( <F> =~ m/^(\S+):\s+(.+)/ ) {
     next;
      }

  # get the entity body
  while ( <F> ) {
    print OUT $_;
    $time = time;
    last if $time > $time_stop;
  }


  # close the network connection
  close(F);
  close(OUT);
}



sub open_TCP
{
  # get parameters
  my ($FS, $dest, $port) = @_;

  my $proto = getprotobyname('tcp');
  socket($FS, PF_INET, SOCK_STREAM, $proto);
  my $sin = sockaddr_in($port,inet_aton($dest));
  connect($FS,$sin) || return undef;

  my $old_fh = select($FS);
  $| = 1;                       # don't buffer output
  select($old_fh);
  1;
}


sub parse_URL {

  # put URL into variable
  my ($URL) = @_;

  # attempt to parse.  Return undef if it didn't parse.
  (my @parsed =$URL =~ m@(\w+)://([^/:]+)(:\d*)?([^#]*)@) ||
return undef;

  # remove colon from port number, even if it wasn't specified
in the URL
  if (defined $parsed[2]) {
    $parsed[2]=~ s/^://;
  }

  # the path is "/" if one wasn't specified
  $parsed[3]='/' if ($parsed[0]=~/http/i && (length
$parsed[3])==0);

  # if port number was specified, we're done
  return @parsed if (defined $parsed[2]);

  # otherwise, assume port 80, and then we're done.
  $parsed[2] = 80;

  @parsed;
}


1;
Printer Friendly | Permalink | Reply | Top
 
DU AdBot (1000+ posts) Click to send private message to this author Click to view 
this author's profile Click to add 
this author to your buddy list Click to add 
this author to your Ignore list Wed May 01st 2024, 06:08 AM
Response to Original message
Advertisements [?]
 Top

Home » Discuss » DU Groups » Computers & Internet » Website, DB, & Software Developers Group Donate to DU

Powered by DCForum+ Version 1.1 Copyright 1997-2002 DCScripts.com
Software has been extensively modified by the DU administrators


Important Notices: By participating on this discussion board, visitors agree to abide by the rules outlined on our Rules page. Messages posted on the Democratic Underground Discussion Forums are the opinions of the individuals who post them, and do not necessarily represent the opinions of Democratic Underground, LLC.

Home  |  Discussion Forums  |  Journals |  Store  |  Donate

About DU  |  Contact Us  |  Privacy Policy

Got a message for Democratic Underground? Click here to send us a message.

© 2001 - 2011 Democratic Underground, LLC