I'm creating a little and simple radio recorder:

It can start up with windows and can be minimized automatically. You can choose for every radio to start recording when porgram starts. Split the file by name, size and time, no split is also supported. Program consists of only 1 file, the executable, because radio list and stuff like that is held in the registry. You can export/import WinAmp pls files, save/load IRR files.
It's almost finished, but i'm having problems with name splitting. 2 times out of 10 i get the correct meta data from the shoutcast stream, but otherwize it gives me just crap:
>>> sent header line, <<< incoming header line
Bank size: how many bytes are streamed in the bank
Head location: Over all meta data location(total received bytes, where bank size isn't added yet)
Head len: length of the header, readbyte() * 16
Meta: data that is read from that location and length
reference on meta data: http://www.smackfu.com/stuff/programming/shoutcast.html
icy-metaint equals to first Head location so it should get the StreamTitle='' field, but why it doesn't :S

It can start up with windows and can be minimized automatically. You can choose for every radio to start recording when porgram starts. Split the file by name, size and time, no split is also supported. Program consists of only 1 file, the executable, because radio list and stuff like that is held in the registry. You can export/import WinAmp pls files, save/load IRR files.
It's almost finished, but i'm having problems with name splitting. 2 times out of 10 i get the correct meta data from the shoutcast stream, but otherwize it gives me just crap:
>>> sent header line, <<< incoming header line
Bank size: how many bytes are streamed in the bank
Head location: Over all meta data location(total received bytes, where bank size isn't added yet)
Head len: length of the header, readbyte() * 16
Meta: data that is read from that location and length
>>> GET /stream/1018 HTTP/1.1 >>> Host: scfire-nyk-aa02.stream.aol.com >>> User-Agent: IntRadRec 0.01 >>> Icy-MetaData: 1 >>> Accept: */* >>> Connection: Close >>> <<< ICY 200 OK <<< icy-notice1: <BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR> <<< icy-notice2: Firehose Ultravox/SHOUTcast Relay Server/Linux v2.6.0<BR> <<< icy-name: Groove Salad: a nicely chilled plate of ambient beats and grooves. [SomaFM] <<< icy-genre: Ambient Chill <<< icy-url: <a href="http://somafm.com" target="_blank">http://somafm.com</a> <<< content-type: audio/mpeg <<< icy-pub: 1 <<< icy-metaint: 16384 <<< icy-br: 128 <<< Bank size: 8192 Head location:16384(15972) Head Len:166 Meta:ŒA2‹¡7â6{²ÜoIÈ8>y6¼%w=Ó.í²ÐÌq׉$ÕUpµÇ«³™s“ó‘È”%|xïígZ³XõŠo% ESÿû’èòÎ!ÕOJP^„úoJ$ÑZ 1+‚–éÁ¼!0ÿÿë%Xßåƒ~ ™0y€ÒÔd“Œ²·‰ÉOµNÖñƒŽ¼Øâk>R-"[u*%1&—t:íG£°í¹,mö£ŒÖ†¬ÛÆsò1ú»ž5y—2ííîĂЂ,¬n}¼~lûC. §¥A§˜ÜR/ÓiFY#Iaª?X< Bank size: 8192 Head location:32768(32356) Head Len:6 Meta:zàbÆJà<¸\ÃN %ék½pxÿWñŠóü4ÞÖÀIŒãŠ}®úÖhw¬›µõV(þÑjÿ=ñ¦pSTL•Žù°eô!šow¬þÃ&‰sªÝ‚m Bank size: 8192 Head location:49152(47767) Head Len:106 Meta:‘LŒ{e‘]YšËì†FA'ÜyOŠ[P»="GWSEÂGTÄ”[…"¥Þ‹šP@~«‘4;°QÓ Bank size: 8192 Head location:65536(64151) Head Len:26 Meta:ô€\.ê Æ'áž•¿øíŸë>ïþÿüõ¹6ÆÈ×&R‰“'˃„4 ïhÔ~˜|k¹|@ðLk9à /%Ò6 ]bµ ¯éEòÂÊÒó»låàu§«hÎÎ!U£sÜ’hÉ ÐDÙ‚t2ó ä¾d²²ê;¿ý«¯oŠ:FžƒàCŒL?ãH#ýnéÈ}5x6ƒ¨æ0‹ÔhÎ7€à0õšGvWIúäêeqHmøzþd»Ÿžáuùr2çþîüÛþ*yY„ö©‘¼baë ÙŽãùëUþe_¯þï!œž©q•Í|qÿû’íó"*ÑZ2`b$z@kIJ”Õb°Ëu™,Àö%püß8ð µ ñNå#¼<ˆ Ú͸VÂåï®N¡³*3pÍŽÃ×”Ñ{fñávòù—/ýwÓlŠ“!ëÝu™Æ&ì>9Žãêõ¹þdoûvå¹=©ã+^8úç«Gp„m¢¼€e2évvê»õš8(Â’t@‰sçŽ4Ó¶Æ|Í”¨
reference on meta data: http://www.smackfu.com/stuff/programming/shoutcast.html
icy-metaint equals to first Head location so it should get the StreamTitle='' field, but why it doesn't :S