home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 February / Chip_2004-02_cd1.bin / tema / stream / download / asfrec / README.TXT < prev   
Text File  |  2000-12-15  |  53KB  |  1,178 lines

  1.  
  2. ============================================================================
  3. =                                                                          =
  4. ======   ASFRecorder V1.1 - STILL DOWNLOADING STREAMING CONTENT! ;-)  ======
  5. =                                                                          =
  6. ============================================================================
  7.  
  8.                          Thank you for reading this!
  9.                          
  10.                            Reading makes you smart.
  11.                      Smart people don't have dumb questions.
  12.                 If you still have problems, ask fellow users at 
  13.                      http://pub18.ezboard.com/basfrecorder
  14.  
  15.  
  16. This  is  an  update - or "service release" to ASFRecorder V1.0.  If you are
  17. new  to  this  software  and  do  not know its features, then skip the first
  18. section and start with the "General Announcements" section.
  19.  
  20.  
  21. ----------------------------------------------------------------------------
  22.                                News ticker
  23. ----------------------------------------------------------------------------
  24. Microsoft has just released version 8 of their audio and video codecs.  This
  25. makes  me expect  us to see a much improved  audio and video quality in many
  26. broadband video clips soon. This is yet another reason  why providers should
  27. really start to use DRM to protect their rights NOW!!!
  28. ----------------------------------------------------------------------------
  29.  
  30.  
  31.  
  32.  
  33. ----------------------------------------------------------------------------
  34.                            What's new to V1.1 ?
  35. ----------------------------------------------------------------------------
  36.  
  37. The  most  important "news" is that this is going to be the FINAL RELEASE of
  38. this  software.   No  further  updates  and  fixes  will be performed by the
  39. original author.  It is very likely that I will decide to even shut down the
  40. home page in a few months.
  41.  
  42. * ASFRecorder  V1.1 now  has a HTTP proxy support (fully configurable in the
  43.   GUI).
  44.  
  45. * Support for accessing password-protected streams has been added.  Username
  46.   and password must be known, of course. Don't use stolen passwords! This is
  47.   illegal.
  48.  
  49. * ASFRecorder  now  saves  live-content  as  fully  seekable streams  (which
  50.   unfortunately  only  works correctly with Media Player 6.4, and *not* with
  51.   version 7.0). See the FAQ on how to use Media Player 6.4  even if you have
  52.   previously installed the 7.0 update!
  53.  
  54. * An  incompatibility  with  certain  streams using  a packetized or "split"
  55.   header has been fixed (which occurs in some audio-only streams using small
  56.   packets, e.g.  audio books or narrow band radio).
  57.  
  58. * Resuming an incomplete stream will no  longer result in corrupt streams if
  59.   ASFRecorder has previously been  terminated by a system crash or a "forced
  60.   close" of the Windows DOS box.
  61.  
  62. * ASFRecorder V1.0 transmitted a static client GUID to the media server when
  63.   connecting.   This  has been replaced by a randomized GUID.  So the server
  64.   log  files  can  no  longer  be  specifically  scanned  for  accesses with
  65.   ASFRecorder.
  66.  
  67. * Handling of %-Escape sequences  in URLs is now done properly (I hope). The
  68.   program now removes disallowed characters from file names (for the Windows
  69.   platform).
  70.  
  71. * And finally, the "About Box" has been brushed up a little.
  72.  
  73. By  the way, it took no longer than three days to implement the new features
  74. and  update the documentation.  I almost forgot:  There's a new "episode" of
  75. Star Trek Voyager in the header of asfrecorder.c ;-)
  76.  
  77. Please  note  that command line arguments have become case-sensitive in this
  78. program version (to allow to distinguish between the -p and -P options).
  79.  
  80.  
  81.  
  82. ----------------------------------------------------------------------------
  83.                What has happened since the release of V1.0 ?
  84. ----------------------------------------------------------------------------
  85.  
  86. This  product  has  found  some quite impressive media echo.  The German c't
  87. magazine  (that  is _the_ computer magazine for technically skilled users in
  88. Germany)  featured  this  programm  on  a  full  page.   ZDFMSNBC (german TV
  89. homepage,  in  cooperation with MSN) published a huge online-article on this
  90. program,   including   a  statement  of  a  Microsoft  spokesman  which  was
  91. hillariously funny to read.
  92.  
  93. The  home  page  of  ASFRecorder  is  striving towards 100,000 hits since it
  94. opened  in  mid  of 2000.  And this is remarkable for a poorly designed home
  95. page  with  static content.  The program is listed on dozens of freeware and
  96. software pages throughout the world.  Several "fans" have created mirrors of
  97. my  home  page  or  even  designed  tutorial  and instruction pages for this
  98. software.   Even  Linux  user  groups  (e.g.   FreshMeat)  have  listed this
  99. software in their archive.
  100.  
  101. What  I  personally  consider  most  funny is that when I look at the access
  102. logfiles,  I  find  that  employees  of  companies  like  Walt Disney, NASA,
  103. Fujitsu,  Lucent,  Siemens,  Microsoft, etc. have visited my site.  Hey, the
  104. NASA  and  even  Microsoft is using my program - so it must be good.  ;-) By
  105. the  way,  if  I  had  intended  to  smuggle  a  backdoor or trojan into the
  106. Microsoft  campus, I probably would have succeeded.  Hmmm, excessive private
  107. surfing  at  the  work place is in fact a problem - but not my problem.  ;-)
  108. Just to make that point clear:  My ASFRecorder distribution does not contain
  109. a virus, backdoor or trojan, which  you can also  verify  by  looking at the
  110. source code and by applying a virus scanner.
  111.  
  112. Any reactions from the Industry?
  113.  
  114. Well,  both  the US patent office and the German patents office took a sneek
  115. on  the  homepage,  but  that's  it.   No  further reactions.  The home page
  116. mirrors  have  not  been forced to close.  The FBI hasn't knocked on my door
  117. (yet)  ;-)  And  the Streaming Media Industry is still ignoring the need for
  118. introducing  DRM  solutions.   Most of the content is still fully accessible
  119. using this recording tool, even the content featured on windowsmedia.com!
  120.  
  121. The Windows Media Group knows about this software, but as far as I know they
  122. seem to ignore this "problem". In fact,  the release of this software wasn't
  123. much of a bad thing for Microsoft, because:
  124.  
  125. -  it  makes  the ASF/WMA format more common and popular, being an "allround
  126.    media  format"  (like  AVI, MOV or MP3).  The fact that ASF files are now
  127.    "traded"  in file sharing systems (Scour, GNUTella, etc..) contributes to
  128.    the  success  of  the Media Player versus its arch enemies RealPlayer and
  129.    QuickTime.
  130. -  Microsoft  now  has  better  arguments for establishing and selling their
  131.    Digital  Rights  Management  solutions  which  will  clearly  give them a
  132.    stronger position in future markets.
  133.  
  134. What  I  didn't  expect  at  all  was a tempting job offer that I got from a
  135. company  in  the streaming media business.  No, not from Microsoft's Windows
  136. Media  Group  ;-)  But  from one of the major players in the web hosting and
  137. streaming services.  So in the future, I will focus on making streaming more
  138. secure,  reliable  and  enjoyable  for both the end users and the providers,
  139. which  also implies I will have to quit working on this project.  This means
  140. that  there  will  never  be  any Unicast TCP or UDP support in ASFRecorder,
  141. unless someone else decides to continue this project.
  142.  
  143.  
  144.  
  145. ----------------------------------------------------------------------------
  146.                            General announcements
  147. ----------------------------------------------------------------------------
  148.  
  149. This  tool is distributed freely with full source code included.  The author
  150. wants to remain anonymous.  Source code may be used and changed as you like.
  151. Use  this  program at your own risk.  No warranties for correct function can
  152. be given.
  153.  
  154. This  document in some parts expresses the personal opinion of the author as
  155. an  individual  with  the rights to speak, think and express himself freely.
  156. Please excuse any typing errors or grammatical deficiencies in this text.
  157.  
  158. Please  spread  and  mirror this program on many sites.  From  the author's
  159. point of view, there  is  nothing  illegal  about  this  particular program
  160. and its distribution archive (see legal section for details).
  161.  
  162.  
  163.  
  164. ----------------------------------------------------------------------------
  165.                          So what is this all about?
  166. ----------------------------------------------------------------------------
  167.  
  168. This  tool enables you to download streaming content in Windows Media Format
  169. to  your  hard  drive.  The resulting files will be in ASF format and can be
  170. played with Windows Media Player and derived tools.
  171.  
  172. You  may  call  this  the  "DeCSS"  for Windows Media - although neither any
  173. serious  reverse-engineering nor any particular knowledge about protcols was
  174. necessary to program this simple application.
  175.  
  176. Development time overall:  several hours for a first, working streaming code
  177. and   some  more  days  for  general  performance  tweaking,  cross-platform
  178. portability,  the  Windows graphical user interface and the XML (redirection
  179. file) parser.
  180.  
  181. For program usage:  See below
  182.  
  183.  
  184.  
  185. ----------------------------------------------------------------------------
  186.               The impact on the music and streaming industry?
  187. ----------------------------------------------------------------------------
  188.  
  189. Until  now, most people thought Microsoft streaming media cannot be saved or
  190. copied...
  191.  
  192. This  program  creates  the  possibility  to DOWNLOAD LEGACY AND COPYRIGHTED
  193. CONTENT  -  live or pre-recorded - from any Microsoft streaming media server
  194. that  offers  HTTP streaming.  This has the potential to make some headlines
  195. in the news (which it actually did in some publications).
  196.  
  197. Now  content  providers  will  have  to seriously reconsider their policy to
  198. provide  high-quality, legacy content using non-encrypted, non-authenticated
  199. and generally insecure data channels.
  200.  
  201. I  am  talking  about content providers offering music videos, recordings of
  202. concerts  and TV  broadcasts  in  "high bandwidth" (300kbit/s and 700kbit/s)
  203. video.  Same applies to  streaming  audio.  There is virtually no difference
  204. to offering opyrighted MP3 files  for public download on a freely accessible
  205. server.
  206.  
  207. HELLO CONTENT PROVIDERS!
  208. YOUR CONTENT CAN BE AS EASILY COPIED AS IT CAN NOW BEEN DOWNLOADED FROM YOUR
  209. SERVERS!  WOULD YOU MIND COPY-PROTECTING THIS CONTENT, PLEASE?
  210.  
  211. HELLO MUSIC INDUSTRY AND ARTISTS!
  212. THE  CONTENT  PROVIDERS ARE CURRENTLY GIVING AWAY YOUR INTELLECTUAL PROPERTY
  213. IN  AN  INSECURE, NON COPY-PROTECTED DATA FORMAT.  JUST LIKE MP3!  THESE ASF
  214. FILES CAN BE DOWNLOADED AND COPIED WITHOUT ANY PHYSICAL RESTRICTION.
  215.  
  216.  
  217.  
  218. WHAT CAN CONTENT PROVIDERS DO ABOUT IT ?
  219.  
  220. - Disable HTTP and TCP streaming?
  221.  
  222.   Wouldn't  really  help.  UDP streaming could also be recorded by a program
  223.   similar to this.
  224.  
  225. - Switch from Microsoft to RealMedia products?
  226.  
  227.   Not  much difference.  I am pretty sure the RealMedia servers have exactly
  228.   the same vulnerabilities in their streaming protocols.
  229.  
  230. - Finally start using digital rights management and authentification methods
  231.   offered by Windows Media?
  232.  
  233.   I  hope  so.  This would make an attack like this very difficult.  Windows
  234.   Media  is  not  generally insecure.  It  does in fact offer digital rights
  235.   management and encryption methods.  Get yourself informed.
  236.  
  237.  
  238.  
  239. WHAT CAN THE MUSIC INDUSTRY DO ABOUT IT ?
  240.  
  241. - Pull back from the internet business?
  242.  
  243.   Bad idea. Would give MP3 pirating a serious boost.
  244.  
  245. - Force content providers to use secure methods for providing their streams?
  246.  
  247.   I hope so.
  248.  
  249.  
  250.  
  251. WHAT CAN MICROSOFT DO ABOUT IT ?
  252.  
  253. - Try to find out who wrote this program and sue him?
  254.  
  255.   Bad idea - from the author's point of view.
  256.  
  257. - Inform  content  providers  and  the music industry about how to correctly
  258.   encode  media  streams and configure servers so that the content cannot be
  259.   downloaded and copied _that_ easily?
  260.  
  261.   Yeah, good idea.
  262.  
  263. - Implement  an effective authentification mechanism to make sure only Media
  264.   Player and no other program can access the data streams?
  265.  
  266.   Why didn't they do it already?  It would have made this attack impossible.
  267.   Does  it  always  require  a "LOVELETTER.vbs" or a tool like this to prove
  268.   that some Microsoft products are unsafe/insecure (when incorrectly used)?
  269.  
  270.  
  271.  
  272. ----------------------------------------------------------------------------
  273.               Some advantages/special features of this utility
  274. ----------------------------------------------------------------------------
  275.  
  276. * With  this utility it is possible to download high-quality (high bandwith)
  277.   content  using  a  low-bandwidth  connection  (e.g.   modem) for later and
  278.   repeated replay.
  279.  
  280. * You  can  record  live video content from web cams and internet broadcasts
  281.   that you can't record otherwise.
  282.  
  283. * The  code  is  written  in  portable ANSI-C, so it can be compiled on many
  284.   operating  systems.   The  INTEL  byte-ordering  of  the  data  stream  is
  285.   processed   in   a  system-independent  manner.   Only  the  GUI  code  is
  286.   windows-specific  and is limited to a Windows platform.  Download a stream
  287.   at university/at work on Unix systems and enjoy it at home on your PC.
  288.  
  289. * This   tool   is   using   a   HTTP   streaming   protocol.    HTTP  is  a
  290.   connection-oriented  protocol  based on TCP.  The protocol layer has built
  291.   in  error correction (ARQ).  So packet loss does not have any influence on
  292.   visual  or acoustic quality of the downloaded stream.  You will always get
  293.   the same quality that the source stream on the media server can offer.
  294.  
  295. * HTTP  streaming  passes  most  firewalls.  UDP does not.  That is the only
  296.   reason why it was implemented by Microsoft.
  297.  
  298. * This utility supports automatic resuming of an interrupted download.
  299.  
  300. * This  utility  does  _not_  send  detailed information about your computer
  301.   system  to the media server, as the Windows Media Player does (monitor the
  302.   packet traffic for a  HTTP transmission and  see  yourself, if  you  don't
  303.   believe me)
  304.  
  305.  
  306.  
  307. ----------------------------------------------------------------------------
  308.                  Usage as a stand-alone Windows application
  309. ----------------------------------------------------------------------------
  310.  
  311. The  Windows GUI offers a simple player interface.  It can play a variety of
  312. media file formats.  Actually it can show any media file that your installed
  313. DirectShow (also called ActiveMovie) drivers can play.
  314.  
  315. The buttons - from left to right - are as follows:
  316.  
  317. - Play
  318. - Pause
  319. - Stop
  320. - Preview Stream
  321. - Cancel Transfer
  322.  
  323. There  is  no volume control and no fast-forward or rewind button.  However,
  324. you can reposition the stream using the position slider.
  325.  
  326. The  most interesting part is the "Open URL" option.  Just type the URL of a
  327. media  file  on a Windows Media Server (it must offer HTTP streaming at this
  328. time!) and hit the "Okay" button.
  329.  
  330. After a short time -assuming that the stream is available-  ASFRecorder will
  331. prompt  you  for  a  file  name  to  save  the stream to.  You can select an
  332. appropriate destination directory and file name for your stream.
  333.  
  334. ASFRecorder will remember the 25  last recently accessed URLs.  To resume an
  335. aborted  download,  just  request the stream again and specify the very file
  336. that contains the partial stream.  Your download will then resume. Note that
  337. you cannot currently resume live streams. Always specify  a new file  or you
  338. will lose your old live recording.
  339.  
  340. During  download  you will see a progress indicator in the status bar and on
  341. the  slider.   You  may  preview  the  stream while download is in progress.
  342. However  you  can  only  preview the stream up to the position that has been
  343. downloaded so far (as indicated on the slider).
  344.  
  345. During downloads, you do have the possibility to replay any other media file
  346. that resides on your hard drive.  By hitting the "preview"  button again you
  347. can return to the stream you are currently downloading.
  348.  
  349. The program's status bar gives you the following information:
  350.  
  351. - Received kilobytes so far
  352. - Percentage of stream so far
  353. - current Timestamp in stream (d:h:m:s.ms)
  354. - Data chunk sequence number
  355. - Program status information
  356.  
  357. The program supports drag & drop,  but only one file at a time.  Drag & drop
  358. with URLs from Internet Explorer is currently not supported yet.
  359.  
  360. You can configure a HTTP proxy server if you are situated behind a firewall.
  361. Just use the "Proxy Server" menu item in the Settings menu.
  362.  
  363. Before  complaining  about the too simple and non-flexible player interface,
  364. please  keep  in mind that this program is a quick hack that was finished in
  365. about one-week by an author who started with very little Windows API and GUI
  366. programming  knowledge.  And, besides the player functionality has only been
  367. added for a quick preview of the streams.
  368.  
  369.  
  370.  
  371. ----------------------------------------------------------------------------
  372.               Usage from a Web Browser (Windows platform only)
  373. ----------------------------------------------------------------------------
  374.  
  375. The program has the ability to register as  default application for  the  so
  376. called  "redirector  files". These files have the file extension .asx, .wax,
  377. .wvx  and  .wmx.  Redirector files  usually contain references to the actual
  378. stream URL.
  379.  
  380. By  registering  ASFRecorder as  a standard application for these files, the
  381. program  will be launched every time you click on a link to any WindowsMedia
  382. stream  in  your  web  browser and it will immediately begin to download the
  383. stream.
  384.  
  385. The  Windows Media Player will, however, remain the standard player for your
  386. downloaded streams (ASF, WMA, WMV).  So by clicking on these files the Media
  387. Player  will  be  used  for replay.  That is because it offers a much better
  388. player interface than ASFRecorder.
  389.  
  390. You may any time restore the previous  settings by unregistering ASFRecorder
  391. as  the  standard  application for the redirector files.  Then Windows Media
  392. Player regains full control.
  393.  
  394. At  this point, it is not possible to intercept streams that are replayed on
  395. web  sites  that embed  the Media Player into the web page.  For downloading
  396. these streams, you have to access the "File/Properties" menu of the embedded
  397. Media Player to get the URL of the stream.  An alternative is to look at the
  398. web page's source code to find out what stream URL is referenced.  For  more
  399. details, see the section "How to find out the stream URL in Webpage-embedded
  400. Media Players".
  401.  
  402.  
  403.  
  404. ----------------------------------------------------------------------------
  405.                  Usage from a shell console (all platforms)
  406. ----------------------------------------------------------------------------
  407.  
  408. asfrecorder -a <user:passwd> -P <proxy:port> -p <port> -m <recording time>
  409.             -e <one or more stream references or URLs> -r -d -b
  410.             
  411. NEW IN VERSION 1.1: Command line options are case sensitive! (-p, -P)
  412.  
  413. A  <stream  reference>  is  an URL pointing to a http:// or mms:// stream in
  414. Windows  Media  streaming  format.   The  only  streaming protocol currently
  415. supported by this utility is HTTP streaming. Proxy servers are currently not
  416. supported.
  417.  
  418. You  can  also  specify a <stream reference> that is an ASX, WVX, WAX or WMX
  419. file  on  your  hard  drive.   The program will then download all the stream
  420. references specified in  these files.  You may also use DOS wild cards (?,*)
  421. in order to  batch-download the streams referenced  by a large number of ASX
  422. files.
  423.  
  424. By  specifying  several  files  or  URLs,  you  can do batch downloads.  For
  425. disabling  blocking GUI operations  like the "Save As" file dialog, you have
  426. to use the -b option (see some paragraphs below for a detailed description).
  427.  
  428. Some examples of using ASFRecorder
  429.  
  430. asfrecorder -b mms://server.com/coolstream.asf  C:\Movie_Trailer.asx
  431. asfrecorder -b *.asx
  432.  
  433. Valid  URLs  may  start  with  http:// or mms:// or straightforward with the
  434. server name.  Some syntactically correct - but purely fictional - URLs are:
  435.  
  436. http://content.provider.com/any/number/of/subdirectories/streamfile.asf
  437.  
  438. mms://any.media.provider.com:80/example.asf
  439.  
  440. my.favourite.provider.com/streamfile.asf
  441.  
  442. -a  <user:passwd>  is  used  to  provide a user name and password for a user
  443. authentification process.  So you can finally download content that you have
  444. paid  for.   Most of you guys requesting that feature probably want porn ;-)
  445. Note  that  this  password  is  used  on all supplied stream references.  It
  446. cannot  be  changed  individually  for  each  reference  (like the -m and -p
  447. option, for example)
  448.  
  449. -P  <proxy>  tells  the  program  to access a proxy server.  By specifying a
  450. proxy  server,  you  can  access  streams  even if you are situated behind a
  451. firewall  that  does not allow a direct HTTP connection.  The correct syntax
  452. for  the  proxy  specification  is "http://proxy.at.my.institute:8080" where
  453. http://  may  be  omitted.   Note  that, your institute or organization will
  454. actually use a a different server or port number.
  455.  
  456. -p <portnum> is an optional parameter where you can specify a different port
  457. number than 80 (which is the default port number used by HTTP). This option
  458. does not currently work in conjunction with the -P (proxy) option.
  459.  
  460. -r  enables  creation  of  a  raw  output file.  This dumps the raw contents
  461. received  on the HTTP connection to your hard drive.  The resulting raw file
  462. is not a valid ASF file!  This option is probably only useful for debugging,
  463. programming or reverse-engineering purposes.
  464.  
  465. -d  enables  dumping  the full HTTP client request and server replies to the
  466. console.   This is for programmers and for technically interested people who
  467. want to find out how the media server works.
  468.  
  469. -b  enables  batch  mode.  It will stop the GUI from asking for a file name.
  470. The  stream  files  will  all  be  saved  to the current directory.  Dialogs
  471. showing  critical  errors  will  be replaced by a message in the status bar.
  472.  
  473. -m  specifies the maximum recording time in minutes. This is useful for live
  474. streams which you want to record unattended. By using a task scheduling tool
  475. you can start the recording at a given time. Record network events, TV shows
  476. and radio programs even while you are asleep or not at home.
  477.  
  478. The -p and -m parameters are defining the port/time for all following stream
  479. references. You can change these options inbetween the stream references.
  480.  
  481. asfrecorder -m 30 tvshow.asx -m 0 mms://server/stream.asf
  482.  
  483. This will first record 30 minutes of a tv program (asx file resides on disk),
  484. followed by a second stream without any time restriction. The 0 disables any
  485. previously given time limit.
  486.  
  487. asfrecorder -a jeff:joshua -P proxy.domain:1234 mms://nude.com/chicks.asf
  488.  
  489. This is an example of downloading some "nude chicks" that are protected with
  490. a  user/password  authorization using a  proxy server. Of  course  all these
  491. parameters are purely fictional.
  492.  
  493. -e defines the following stream references as  referencing the same content,
  494. although this  content may be available from different servers.  The purpose
  495. of this  flag is  to download  only  one of these  references and ignore the
  496. rest.
  497.  
  498. asfrecorder -e URL1 URL2 URL3 -e URL3 URL4
  499.  
  500. This will  download URL1  and  ignore URL2 and  URL3 if  URL1 was available.
  501. Otherwise URL2 will be tried.  If URL2 was unavailable,  URL3 will be tried.
  502. The second -e flag specifies another group of URLs. So URL3 will be tried in
  503. any case, but URL4 only if URL3 was not available
  504.  
  505.  
  506.  
  507. ----------------------------------------------------------------------------
  508.       How to find out the stream URL in Webpage-embedded Media Players
  509. ----------------------------------------------------------------------------
  510.  
  511. Move the  mouse  over the  embedded player window and  use the  right  mouse
  512. button to pop up the context menu of the Media Player.
  513.  
  514. Select Properties.  Click the "Show" (or "Clip") tab.  In the Location field
  515. you  will  find  the server and directory name.  To the right of the item is
  516. the ASX or ASF stream name.
  517.  
  518. Now merge the server and stream name to get a complete URL (like this).
  519.  
  520. mms://servername/optional/directories/streamname.asf
  521.  
  522. Enter this URL into ASFRecorder (File/Open URL...) or pass  it as  a command
  523. line argument and here we go...
  524.  
  525. *** Alternative #1:
  526.  
  527. Click into the frame  that contains  the embedded  Media Player. Right-click
  528. and select "View Source". Now Notepad (or similar)  will pop up.  Search for
  529. an URL reference  that contains  either .asf or .asx.  Copy  and paste  this
  530. into the "Open URL" dialog of ASFRecorder and here we go....
  531.  
  532. I am sure that you will find out how it will work for many other sites.  You
  533. might also find some sites where it wont't work at all ;-)
  534.  
  535. *** Alternative #2:
  536.  
  537. Some ASX redirector files must be downloaded  because clicking on the links
  538. does not bring up ASFRecorder even if the  redirector  file types have been
  539. registered.  In Internet explorer,  use the right  mouse button to show the
  540. link's context menu and select "Save Link As...". I  suggest  you save  the
  541. ASX file to your desktop and double-click it there. Now ASFRecorder will do
  542. its job.
  543.  
  544.  
  545.  
  546. ----------------------------------------------------------------------------
  547.                Questions and Answers on Program Operation (FAQ)
  548. ----------------------------------------------------------------------------
  549.  
  550.  
  551. Q: Why does the audio/video preview  sometimes stop while  download is still
  552.    in progress? Why can't I restart the replay using the play button then?
  553.    
  554. A: In this case, move the position slider backwards (just a little bit)  and
  555.    press  the "Play" button again.  By moving the position slider, you force
  556.    DirectShow to recognize the new end-of-file position.
  557.  
  558.    Technical Background:
  559.    DirectShow  will play the incomplete  ASF  file which has been written to
  560.    disk  so far.  Sometimes  the  "WindowsMedia source filter"  (built  into
  561.    DirectShow)  encounters  the  end  of  that  file.  It will remember this
  562.    end-of-file  position,  regardless  of  whether  ASFRecorder  has already
  563.    downloaded  and appended some new data to that file.  Even  if  you press
  564.    "Play"  again, DirectShow still thinks the end of the file is at the same
  565.    position and won't play.
  566.    
  567.  
  568.  
  569. Q: Video and/or audio preview does not work in ASFRecorder!
  570.  
  571. A: It might be that  you  are missing  the DirectShow/ActiveMovie  transform
  572.    filters that are required for playing WindowsMedia.
  573.  
  574.    First, try reinstalling  the full  Windows Media Player 6.4  distribution
  575.    archive.  If this still does not help, install the  "Windows Media Tools"
  576.    that can be obtained on the Microsoft web site. Have a look at
  577.  
  578.    http://msdn.microsoft.com/windowsmedia/
  579.    or
  580.    http://www.microsoft.com/windows/windowsmedia/
  581.    (see the "Downloads" page)
  582.  
  583.    
  584.  
  585. Q: When starting the program, I only receive the message "missing DLL export
  586.    API WSAEnumEvents", "A required DLL is missing (ws2_32.dll)" or similar.
  587.  
  588. A: You seeem to have Windows 95 OSR 1 installed.  Your  ws2_32.dll (WinSock)
  589.    is too  old or  not existing. You need to install the latest WinSock2 DLL.
  590.    The update archive  can be downloaded from
  591.    
  592.    http://www.microsoft.com/windows95/downloads/contents/wuadmintools/s_wunetworkingtools/w95sockets2/?RLD=114
  593.  
  594.    The download is  approximately 960kb in size. You  will need to reboot in
  595.    order to complete the installation. The filename is "W95ws2setup.exe"
  596.  
  597.    In case this URL should become outdated,  try to search for "WinSock"  on
  598.    the Microsoft web site and find the link to the Windows 95 update.
  599.  
  600.  
  601.  
  602. Q: My friends using Windows 98 or 2000 do get a fancy color gradient  in the
  603.    main window, but my program window looks quite monochrome. Why that?
  604.  
  605. A: You are missing the "msimg32.dll".
  606.  
  607.    You can get this DLL from "The DLL archive" on the Internet.
  608.    
  609.    The URL is: http://solo.abac.com/dllarchive/M.html
  610.  
  611.    After downloading, put it either in your WINDOWS\SYSTEM directory or copy
  612.    it into the ASFRecorder program directory. Now you  should get that fancy
  613.    color gradient as well. Be warned: The effect may render quite slowly.
  614.  
  615.  
  616.  
  617. Q: I  have a fast connection to the internet!  Why does the stream arrive at
  618.    a constant, low data rate?
  619.  
  620. A: That's  the  concept  of  streaming.  The stream is sent by the server at
  621.    exactly the data rate that is necessary for realtime replay.  So a 56kbit
  622.    stream  will arrive at a constant rate of 56kbit, no matter how fast your
  623.    internet uplink is.
  624.  
  625.  
  626.  
  627. Q: Can downloading be accellerated?
  628.  
  629. A: Depends on the server.
  630.  
  631.    There  is a RATE specification in the HTTP header used for requesting the
  632.    stream (see source code).  Modifying this RATE to anything different than
  633.    1.0 makes most servers  reply with  an  error message  of "500 - internal
  634.    server error". So you are limited to the stream's original data rate.
  635.  
  636.    However you can request and download different streams at the same time -
  637.    until your available bandwidth is consumed.
  638.  
  639.  
  640.  
  641. Q: During replay, when moving the position slider, seeking within the stream
  642.    is very slow.  What is the problem?
  643.  
  644. A: A Windows Media server does not transmit the index data of the ASF files.
  645.    This  index  data  is  required for fast seeking in the stream.  You can,
  646.    however generate a new index for the ASF files after download.  Therefore
  647.    you  have  to  obtain  the Windows Media Tools from Microsoft and use the
  648.    "ASF Indexer" to generate a new index.
  649.    
  650.    Windows Media Player 7.0  even  completely refuses  to seek in downloaded
  651.    video  streams. The  position slider will  just pop back to  the position
  652.    where it was before. I suggest you better use Windows Media Player 6.4.
  653.  
  654.  
  655.  
  656. Q: I have  already installed  Windows Media Player 7.0 - how can I downgrade
  657.    to version 6.4?
  658.    
  659. A: You  don't have  to downgrade  because  Windows Media Player 6.4 is still
  660.    present  on your system.  You will  find it  in the  Windows Media Player
  661.    directory  as "mplayer2.exe".  Create a shortcut  on the desktop pointing
  662.    to this  executable and you  can start the  Media Player 6.4 when needed.
  663.    Using the  "Execute..." command in the start menu  with "mplayer2.exe" as
  664.    argument works as well.
  665.  
  666.  
  667.  
  668. Q: I  receive the error code "connect() failed:  CONNREFUSED" or  "404 - NOT
  669.    FOUND" for streams on some servers.  Why this?
  670.  
  671. A: Bummer.   The  server  does  not  allow  access  using the HTTP streaming
  672.    protocol.  Besides prohibiting  access for most users  behind a firewall,
  673.    this  does  also  prohibit access  for the  ASFRecorder  utility. Give up
  674.    trying and download a different stream on a different server.
  675.  
  676.  
  677.  
  678. ----------------------------------------------------------------------------
  679.                Questions and Answers on Safety and Protocols
  680. ----------------------------------------------------------------------------
  681.  
  682.  
  683. Q: Is this a "crack" of Windows Media?
  684.  
  685. A: No.   This  is  not  a  crack.   This  program  is  just  a simple client
  686.    application  that  receives  streaming  data and stores it on hard drive.
  687.    The  program  looks  like  a standard "Windows Media Player" to the media
  688.    server on the other end.
  689.  
  690.    It  was  not  necessary  to break any security or encryption barriers for
  691.    obtaining  the  raw stream data.  The protocol used for streaming is very
  692.    simple  and  based  on HTTP - a standard protocol used for the "word wide
  693.    web".
  694.  
  695.    And  that  is  the  scandal  about all this.  Why does the music industry
  696.    complain  about the MP3 piracy when - at the same time - they offer equal
  697.    content in a similar, equally unsafe manner?
  698.  
  699.  
  700.  
  701. Q: Is  Windows  Media  unsafe?   Why  is  it possible to simply download the
  702.    streams?
  703.  
  704. A: This  is  not  a problem with Microsoft or Windows Media in general.  The
  705.    Windows Media Toolkit does in fact offer possibilities for digital rights
  706.    management and secure, authenticated and even encrypted channels.
  707.  
  708.    The  problem  is  with  the  lazyness of the content providers.  Very few
  709.    companies actually use the available options of digital rights management
  710.    and encryption.
  711.  
  712.  
  713.  
  714. Q: Will you ever implement the Unicast TCP and UDP protocols in ASFRecorder?
  715.  
  716. A: I do possess  the knowledge  to do that and  there is already a prototype
  717.    implementation. However, I do  not intend to  use this technology  in the
  718.    context of recording streams (now I virtually  hear a  dozen of Microsoft
  719.    executives and developers breathing out in relief).
  720.    
  721.    Work on ASFRecorder has been terminated.
  722.  
  723.  
  724.  
  725. ----------------------------------------------------------------------------
  726.             Questions and Answers on Legal and Copyright Issues
  727. ----------------------------------------------------------------------------
  728.  
  729.  
  730. Q: Does this tool infringe any Microsoft patents?
  731.  
  732. A: From my point of view: A definitive No!
  733.  
  734.    This  tool  was  developed using neither the Microsoft Format SDK nor the
  735.    Windows  Media  Tools SDK.  The licensing conditions of these SDKs do not
  736.    apply  here.   In  order  to  save  the ASF files to a storage medium, no
  737.    specific  knowledge  about  the  inner  ASF  file  structure  was needed.
  738.    Basically the data is saved in the very same format  as it arrives on the
  739.    HTTP connection. The only thing that needs to be determined  by this tool
  740.    is the segment (chunk) size for saving syntactically correct ASF files.
  741.  
  742.    Microsoft does claim a patent on the ASF file format in the United States
  743.    and  possibly  in  other  countries as well.  There has been at least one
  744.    successful  attempt to  reverse engineer the ASF format by a GNU software
  745.    author.   The  program I am talking about is VirtualDub 1.3 by Avery Lee.
  746.    By  threatening him with legal action, Microsoft has forced the author to
  747.    remove  support  for  loading  ASF  media  files  because of the programs
  748.    ability  to  transcode  these  media files to AVI format.  You can find a
  749.    nice article about all this on the following URL:
  750.  
  751.    http://www.advogato.org/article/101.html
  752.  
  753.    But  as  I  told you, it was not really necessary to reverse-engineer the
  754.    ASF  file format in this case.  I still know very little about the format
  755.    itself.  The program just saves it to disk.
  756.  
  757.  
  758.  
  759. Q: Is it legal to use this tool?
  760.  
  761. A: That depends on what content you actually download with this tool.  If it
  762.    is copyrighted content and if the download is expressly prohibited by the
  763.    content provider, you are acting in an illegal manner.
  764.  
  765.  
  766.  
  767. Q: So is it legal to download and distribute this tool?
  768.  
  769. A: Yes. This is a very simple tool using a very simple internet protocol. It
  770.    does  NOT break any encryption or authentification procedure.  So I don't
  771.    see  any  point  why  this  program could be illegal.  Download, copy and
  772.    spread as you like, THIS PROGRAM AND ITS SOURCE CODE IS LEGAL.
  773.  
  774.  
  775.  
  776. ----------------------------------------------------------------------------
  777.                     Bugs and limitations of this utility
  778. ----------------------------------------------------------------------------
  779.  
  780. You are welcome to fix the following (potential) problems in this program:
  781.  
  782. Problems that remain are:
  783.  
  784. * ASFRecorder cannot capture TCP/UDP-only streams (and probably never will).
  785.   If  you  get  a  "CONNREFUSED" or "404 - NOT FOUND" message, you know that
  786.   this stream cannot be accessed with ASFRecorder.
  787.  
  788. * ASFRecorder works for WindowsMedia only (no RealMedia, no QuickTime).
  789.  
  790. * ASFRecorder cannot handle streams with variable packet sizes (I personally
  791.   never encountered such a stream, so they must be quite rare).
  792.  
  793. * In some cases,  ASFRecorder responds with "200 - OK", but doesn't download
  794.   a  stream.   In this case, try to download the .ASX file with your browser
  795.   and  open  it  with ASFRecorder (e.g.  use drag & drop or double-click the
  796.   file  after  you  have  registered  the  ASX  file  type for ASFRecorder).
  797.   Sometimes, manually editing the ASX file (or extracting the .asf reference
  798.   by hand) will help.
  799.  
  800. * In the command line version, you still cannot override the output filename
  801.   for the stream.
  802.  
  803. * The GUI still isn't very "De Luxe" and the player functionality sucks.
  804.  
  805. * Recording  of live streams  cannot currently  be  resumed. So  you  better
  806.   specify a  different target file  for the ASF stream.  Otherwise your  old
  807.   file will be overwritten.
  808.  
  809. * Will   probably   fail  on  copy-protected  streams that require a license
  810.   to stream or play.
  811.  
  812. * Will  fail if the server allows TCP/UDP streaming only.  Error  message in
  813.   this case:  connect() failed:  "CONNREFUSED" or "404 - NOT FOUND".
  814.  
  815. * Might  fail on some streams  that make  use of yet unknown extensions or a
  816.   different header layout of the file or streaming protocol.
  817.  
  818. * Does not show plaintext strings for network errors in the console version.
  819.  
  820. * The  program  is only working properly for streams up to 4 GB in size.  It
  821.   is  not  possible  to  allow  processing  of  larger  files without losing
  822.   cross-platform (ANSI-C) compatiblity.
  823.  
  824. * The  GUI  only  offers  a very simple player interface.  Other players are
  825.   much more powerful and flexible.
  826.  
  827.  
  828.  
  829. ----------------------------------------------------------------------------
  830.                  My personal wish list of program-features
  831. ----------------------------------------------------------------------------
  832.  
  833. The  following  features  did not make it into this program, because of time
  834. restrictions.   I  wanted  to get a working release on the way as quickly as
  835. possible.  You are welcome to implement these features:
  836.  
  837. * A  video  preview  area  inside  the  main window (like in Media Player or
  838.   RealPlayer)
  839.  
  840. * A full screen mode for the video preview and a volume slider.
  841.  
  842. * Internet URL Drag & Drop support for the main window.
  843.  
  844. * Tooltips for the buttons/status bar in the main window
  845.  
  846.  
  847.  
  848. ----------------------------------------------------------------------------
  849.                             Program compilation
  850. ----------------------------------------------------------------------------
  851.  
  852. In the header section  of the source file "asfrecorder.c" you will find some
  853. instructions for compilation on different platforms. The program is known to
  854. compile on Linux, SunOS, CygWin/Windows and Visual C++.
  855.  
  856. The GUI version can only be built on the Windows platform. You do NOT need a
  857. commercial compiler like MS Visual C++ to build this fancy little program!
  858.  
  859.  
  860.  
  861. ----------------------------------------------------------------------------
  862.                  How to setup the free GCC compiler on Windows
  863. ----------------------------------------------------------------------------
  864.  
  865. There are  two  basic steps  of installation for the  compiler and  required
  866. libraries and it won't cost you a single penny!
  867.  
  868. 1)
  869.  
  870. Just get the CygWin B20.1 package from Cygnus (it's free!).  It  offers Unix
  871. functionality in Console (aka DOS) windows. You should be used to working in
  872. Unix/Linux environments  in order to feel at home in the  CygWin bash shell.
  873. The CygWin B20.1 package is installed using a setup utility.
  874.  
  875. I recommend to install the following packages (binary archives only)
  876.  
  877. * CygWin system and shell
  878. cygwin-1.1.2, ash, bash
  879. * the basic Unix shell tools
  880. fileutils, shellutils, textutils, less, grep, gzip, tar
  881. * tools for displaying and formatting man and info pages
  882. man, groff, texinfo
  883. * The compiler, linker and make utility
  884. binutils, gcc, make
  885.  
  886. If you are familiar with Unix,  you may want to install some more, depending
  887. on your needs and requirements.
  888.  
  889. Download  the documents archive (cygwin-docs.tar.gz)  from the Documentation
  890. link on the CygWin home page. I suggest you read the doc "cygwin-ug-net.pdf"
  891. file to get a quick introduction into CygWin and its basic configuration.
  892.  
  893. 2)
  894.  
  895. Now get the free Win32 headers and libraries  and install these  in your lib
  896. and include directory  (simply by  untar'ing  the archive  into the root '/'
  897. directory)
  898.  
  899. 3)
  900.  
  901. And now the easy part: Compilation!
  902.  
  903. After changing  into the  asfrecorder directory,  a single "make"  should be
  904. sufficient to compile my baby in both the GUI and the console version.
  905.  
  906.  
  907. Where to get all this fine and free software:
  908. ---------------------------------------------
  909.  
  910. *** Get CygWin B20.1 here:
  911.  
  912. http://sourceware.cygnus.com/cygwin/
  913.  
  914. On the FTP mirror sites you will find the "latest" directory. This contains
  915. a file called SETUP.EXE - using this SETUP.EXE you can install the complete
  916. CygWin package either  from internet  or from  the current directory (given
  917. that you downloaded all the packages that are of interest to you)
  918.  
  919. Just have a look how many unix  tools and applications have  been ported to
  920. the  CygWin  environment! (http://sourceware.cygnus.com/cygwin/ported.html)
  921.  
  922. *** Get the latest Win32 headers here (required for compilation!)
  923.  
  924. ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygwin/gcc-2.95.2/
  925.  
  926.  
  927. Internet resources about using GCC on Windows
  928. ----------------------------------------------
  929.  
  930. For  compiling programs that are able to run without the CygWin environment,
  931. use the -mno-cygwin compiler option.  A HOWTO text file on this topic can be
  932. downloaded from:
  933.  
  934. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/mno-cygwin-howto.txt
  935.  
  936. A very detailed FAQ about mingw is also available from:
  937. http://www.mingw.org/mingwfaq.shtml
  938.  
  939. Colin  Peters  offers  an excellent tutorial on building Win32 programs with
  940. GCC on his hompage (http://www.geocities.com/Tokyo/Towers/6162/win32.zip)
  941.  
  942. http://www.geocities.com/Tokyo/Towers/6162/gcc.html
  943.  
  944.  
  945. Did  you know that you can even compile DirectX programs and games with GCC?
  946. DirectX 6.1 headers/libraries for GCC are available from:
  947.  
  948. http://pws.prserv.net/thefortins/cyg-directx.html
  949.  
  950.  
  951.  
  952. ----------------------------------------------------------------------------
  953.                      Who is the author of this program?
  954. ----------------------------------------------------------------------------
  955.  
  956. The author is not willing to reveal his identity.
  957.  
  958. Microsoft  has  already shown that they are not willing to let anyone tamper
  959. with  their  proprietary  ASF  media  format (see the VirtualDub issue).  It
  960. takes an American government to win a court trial against Microsoft.
  961.  
  962. And  besides  this  source  code  is  really  not  an  example  of excellent
  963. programming style.  So why should it be labelled with my name?
  964.  
  965. In case anyone ever claims to have programmed this original release, you can
  966. be sure he is a liar. The author  of this program is  never going to  reveal
  967. his identity. And that's for sure.
  968.  
  969.  
  970.  
  971. ----------------------------------------------------------------------------
  972.                 What software was used to develop this tool?
  973. ----------------------------------------------------------------------------
  974.  
  975. - The  CygWin32  platform   (available for free from Cygnus Solutions, Inc.)
  976.  
  977.   Used as development environment.  I don't trust VisualC++,  it might leave
  978.   behind some GUIDs and fingerprints in the EXE file.
  979.  
  980. - GNU C compiler (gcc).
  981.  
  982.   Used for compilation on Windows and on SUN platform.
  983.  
  984. - Windows  Packet  capture library and Network Analyzer 2.02  (available for
  985.   free from the University Politecnico di Torino, Italy)
  986.  
  987.   Used for spying on network protocols and packets.
  988.  
  989. - frhed
  990.  
  991.   A  free  (non-shareware,  non-commercial)  HEX editor.  Used for getting a
  992.   peek on streamed and locally stored ASF files.
  993.  
  994. - Windows Media Player.
  995.  
  996.   For playing and testing ASF downloaded streams.
  997.  
  998.  
  999.  
  1000. ----------------------------------------------------------------------------
  1001.                          Other recommended software
  1002. ----------------------------------------------------------------------------
  1003.  
  1004. You  will  find  the  following software on the web using appropriate search
  1005. engines like AltaVista and FTP search.
  1006.  
  1007. - VirtualDub 1.3c (try "virtual dub" and "virtualdub" in the search engines)
  1008.  
  1009.   allows conversion of ASF files to AVI format.  This is no software that is
  1010.   easy  to use.  Important:  The current version 1.3d no longer supports the
  1011.   ASF file format. So get the 1.3c version  (not available from the author's
  1012.   web site anymore)
  1013.  
  1014. - Shuffler Music converter (available on www.illustrate.org)
  1015.  
  1016.   allows transcoding of WMA files to MP3 (might not work with copy-protected
  1017.   content, but most providers do not set the copyright bit in their streams)
  1018.   You may need to rename ASF streams to WMA for transcoding them. This  tool
  1019.   is open source as well (for Borland CPP). The  tool  can  rip  audio  data
  1020.   from combined audio/video streams, but generally takes too much  processor
  1021.   time (makes system unusable during conversion).
  1022.   
  1023. - PAM (available on http://pam.au-ja.de/, also listed on CNETs winfiles.com)
  1024.  
  1025.   Nice audio/video player.  Supports ASF video. Has playlist  management and
  1026.   can be "skinned" like WinAmp. It's free software. A slight disadvantage is
  1027.   the fact that it was written in VisualBasic and is sometimes slow.
  1028.  
  1029. - WinAmp (get it on www.winamp.com)
  1030.  
  1031.   for playing streaming  or downloaded WMAs and ASFs,  however this  tool is
  1032.   limited to audio. Video in ASFs will be ignored.
  1033.  
  1034. - DivX video codec (a hacked version of Microsofts MPEG 4 video codec).
  1035.  
  1036.   Records  and  plays  MPEG4  data  to/from  AVI files.  Could be useful for
  1037.   transcoding the ASF files to different formats.  Writing a transcoder does
  1038.   require  a profound programming  knowledge and further reverse-engineering
  1039.   of the ASF format.
  1040.  
  1041.  
  1042.  
  1043. ----------------------------------------------------------------------------
  1044.                Some recommended streaming media web sites
  1045. ----------------------------------------------------------------------------
  1046.  
  1047. There are far  more  Windows Media streaming  web sites on  the Internet, so
  1048. this list represents only a small selection:
  1049.  
  1050. www.windowsmedia.com - for  a  comprehensive  selection of streaming Windows
  1051.                        media content on the web.  Links to many other sites.
  1052.  
  1053. www.montreuxjazz.com - Get a recording of the world's greatest jazz festival
  1054.                        in 2000!  The highlight is a  Deep Purple gig lasting
  1055.                        two hours. Footage of two weeks of concerts  on three
  1056.                        different stages are available (up to 300 kbit/s).
  1057.                        
  1058. www.cinemapop.com    - Get  complete  movies (predominantly  movie  classics
  1059.                        like Bonanza). Has  a members  and a  guest  section.
  1060.                        Movies in the guest  section are  very old.  However,
  1061.                        by guessing the ASF references, even  non-members can
  1062.                        download the member movies (up to 300 kbit/s).
  1063.  
  1064. www.launch.com       - A  lot of  WindowsMedia streaming  music videos here.
  1065.                        7000 videos at up  to 300 kbit/s are accessible.  If
  1066.                        you  disable cookies in  your browser, you  can even
  1067.                        download more  than 1 trial video  without having to
  1068.                        sign up as a member.
  1069.  
  1070. www.centerseat.com   - offers music videos, movie  trailers  and much  more.
  1071.  
  1072. www.vidnet.com       - for streaming music videos  and movie trailers etc...
  1073.  
  1074. www.streambox.com    - a search engine and catalog for streaming media files
  1075.                        on the web. The majority  of content is  for the Real
  1076.                        Player,  but  you   can  also  find  downloadable ASF
  1077.                        streams there.
  1078.  
  1079. www.sonixradio.de    - pretty cool audio streams (techno mixes  from various
  1080.                        DJ's), 32kbit/sec WMA stereo. Approximately 1 hour or
  1081.                        12-16 MB per stream.
  1082.  
  1083. www.jamtv.tunes.com  - This site rocks! Excellent  broadband  music  videos,
  1084.                        live streams and webcast archives. Be sure  to check
  1085.                        out the "videos / broadband videos" section!.
  1086.  
  1087.  
  1088.  
  1089. More  web  sites  are  be recommended by fellow users on this message board:
  1090. http://pub18.ezboard.com/basfrecorder
  1091.  
  1092. Any user input is welcome!
  1093.  
  1094.  
  1095.  
  1096. ----------------------------------------------------------------------------
  1097.                       Does this program have a future?
  1098. ----------------------------------------------------------------------------
  1099.  
  1100. I do not intend to continue working on this project.  But the  sourcecode is
  1101. available  and I  hope many  programmers  will try  to improve this program.
  1102. Unfortunately, there has been  little feedback  from skilled  programmers so
  1103. far. Just some ideas and recommendations:
  1104.  
  1105. * Create  an ActiveX control,  that "wraps around" the  Windows Media Player
  1106.   ActiveX control  and forwards  the URL to ASFRecorder.  This allows a very
  1107.   convenient  recording  from web pages  that embed  the Media Player in the
  1108.   page.
  1109.  
  1110. * Please  support  this  program  on  your  home  page.   Spread, upload and
  1111.   distribute it as quickly as you can.  Please keep the distribution archive
  1112.   UNINFECTED of any viruses and backdoors.
  1113.  
  1114. * Can  _you_  do it with Real Networks?  Who does the first working release?
  1115.   Let's  start  a  contest!   You  will  only  have to rewrite or expand the
  1116.   networking   code.    The  GUI  already  exists  -  it  only  needs  minor
  1117.   modifications.
  1118.  
  1119. * Translate  this  README.TXT to your native language.  Translate the GUI to
  1120.   your native language.  I am sorry  for not using unicode  for the strings.
  1121.   Also, I did not put all the strings into the resource file. Oops.
  1122.  
  1123. * Add  code  for a cool Macintosh or X11 (KDE) GUI.  Now as Media Player 7.0
  1124.   beta  is available  for Mac, a  Macintosh  port of ASFRecorder is a really
  1125.   cool idea.
  1126.  
  1127. * Write a Media player clone or a Media player shell with a record button.
  1128.  
  1129. * Write a proxy server for pre-recorded streaming content.  It could be used
  1130.   at universities and network backbones to reduce network traffic a lot.
  1131.  
  1132. * Write a better GUI than mine and add a media mangement tool for downloaded
  1133.   content (like RealJukebox or MusicMatch Jukebox).
  1134.  
  1135. * Monitor  UDP  traffic and adapt this program to the UDP streaming protocol
  1136.   used  by  Microsoft.   I am pretty sure the data frame format must be very
  1137.   similar to the one used in HTTP streaming.  Recording UDP data requires to
  1138.   arrange  incoming  packets  in the right order before saving (use the seq.
  1139.   number  for  sorting).   Packet loss could be compensated by re-requesting
  1140.   any missing portions of the stream.
  1141.  
  1142. * Write  your  own - maybe platform independend - streaming media server for
  1143.   HTTP and/or UDP streaming Windows Media content (wow, what a nightmare for
  1144.   Microsoft),  although I don't really see a point in it.  The RTSP protocol
  1145.   is  an open, non-proprietary streaming protocol standard and probably much
  1146.   better.
  1147.  
  1148. * Modify  the  source  code to simultaneously request several fragments of a
  1149.   single  stream.   This  allows  faster  access to this stream, allowing to
  1150.   download at any multiple of the stream's original data rate (assuming your
  1151.   own and the content provider's internet connection offers enough bandwith)
  1152.  
  1153. * If  you  are  the hacker-type guy, then you might be interested in finding
  1154.   more vulnerabilities in the Windows Media format (clearing copyright bits,
  1155.   breaking authentification and encryption, hacking windows media DLLs etc)
  1156.  
  1157. * Write  a  transcoding tool (WMA to MP3, ASF/WMV to AVI or MPEG).  However,
  1158.   be  warned:   If  you base this work on Microsoft's Windows Media or Audio
  1159.   SDK,  you  are violating their SDK lincense conditions.  If you don't base
  1160.   your  work  on thir SDKs, you might get in conflict Microsoft's patents on
  1161.   the  ASF  file  format.   However I doubt that patents describing a simple
  1162.   file/  frame  format  are  valid  in  every  country  or could be enforced
  1163.   everywhere.
  1164.  
  1165.  
  1166.  
  1167. And finally...
  1168.  
  1169. ----------------------------------------------------------------------------
  1170.   You have the permission to use my source code as a base for shareware or
  1171. commercial development (It may be up to you to fight it out with Microsoft).
  1172.  
  1173.                         May the source be with you.
  1174. ----------------------------------------------------------------------------
  1175.  
  1176.  
  1177.                  Don't expect my name or signature here ;-)
  1178.