Paranoid license agreements

Part of my project involves extracting metadata from media files. .MP3 music files, for example, often contain the song title, album, artists, and other information (including lyrics, sometimes). Not all media formats allow for metadata, but the major ones do, including Microsoft’s Advanced Systems Format (ASF) that is used by the .WMA and .WMV (Windows Media Audio/Video) files.

You can download a copy of the ASF Specification from Microsoft’s Web site. It’s a 100-page Word document that (I think) fully describes the format. From it, you should be able to write a program that will read and write files that use ASF. If you’re writing a Windows program, you can also use the Windows Media SDKs, but that’s not an option if you’re trying to write a program that will run on other operating systems.

Surprisingly (or perhaps not so surprisingly, considering the source), the specification document contains a three-page End User License Agreement to which you implicitly agree by “downloading, copying, or otherwise using the Specification.” Fine, right? It’s only a specification. What kind of silliness could they possibly put in there? But, seeing as how this is going to form a critical part of my project, I figured I’d better read it.

Under the heading DESCRIPTION OF ADDITIONAL LIMITATIONS, I found the following:

You may not provide, publish or otherwise distribute the Specification to any third party. Further, you shall use commercially reasonable efforts to ensure that the use or distribution of your Solutions, including your Implementations as incorporated into your Solutions, shall not in any way disclose or reveal the information contained in the Specification.

If I read that correctly, it’s saying that I cannot reveal the source code of my implementation. So much for open source .WMA/.WMV readers.

If there’s any doubt, consider this further restriction:

For a variety of reasons, including without limitation, because you do not have the right to sublicense the Necessary Claims, your license rights to the Specification are conditioned upon your not creating or distributing your Implementations in any manner that would cause ASF (whether embodied in your Implementation or otherwise) to become subject to any of the terms of an Excluded License. An “Excluded License” is any license that requires as a condition of use, modification and/or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with such software be (x) disclosed or distributed in source code form; (y) licensed for the purpose of making derivative works; or (z) redistributable at no charge;

Gosh, could they be talking about the GPL?

For reasons I’d rather not get into here, I’m not a huge fan of the GPL and I can understand (although not completely agree with) somebody saying, “You can’t use my stuff in GPL programs.” But the other restriction–preventing me from revealing source code that implements a specification that is available to anybody without restriction–is, at best, silly. Most reasonable people would call it paranoid. With that license agreement, Microsoft has completely eliminated the threat of open source implementations supporting their .WMA and .WMV formats. But they’ve also eliminated a huge potential audience. I’m surprised that providers don’t see this and refuse to provide Windows Media versions of their content.

The restrictions don’t particularly affect me or my project, as we’re not going to be distributing source code, but I can’t imagine why Microsoft included this restriction. Do such restrictions exist for their other specifications?