Slashdot Mirror


Apple Releases iTunes SDK for Windows

amichalo writes "Apple's recent release of an iTunes SDK for Windows provides the ability for third party programs, such as WinAmp and Windows Media Player, to support the AAC file format. Ars Technica has additional commentary. The SDK uses the COM interface and supports iTunes 4.5 only."

24 of 157 comments (clear)

  1. minor nag by LordSah · · Score: 5, Informative
    This SDK provides header files, documentation, and sample JScript files demonstrating how to use the iTunes for Windows COM interface. COM is the Microsoft technology, similar to AppleScript on Mac OS, that allows programmatic control of iTunes from languages like JScript, Visual Basic, C#, and C++. This SDK requires iTunes for Windows version 4.5 or later.
    Because it bugs me, I'm going to clarify this. COM is mainly a binary specification on how function tables should be laid out in objects. If various languages comply to that specification, then magically language A can create and call into objects programmed in language B. Apple could've provided a URL to an article talking about COM (a non-Microsoft article even), rather than define it as "similar to AppleScript on Mac OS, that allows programmatic control of iTunes". If this SDK is intended for real developers, they probably don't want such a dumbed-down description (assuming they've never heard of COM).
    1. Re:minor nag by irokitt · · Score: 4, Insightful

      Anyone who has written even a simple game under Windows should know the basics of COM and how it works. Ditto for anyone who has done basic coding in C/C++/C# for Windows (and those who use VB for advanced coding instead of using it for a macro/prototyping tool). So quite a few developers are going to read that and chuckle. Of course, that was probably written by some marketing weenie who doesn't know any better.

      --
      If my answers frighten you, stop asking scary questions.
    2. Re:minor nag by LordSah · · Score: 4, Informative

      Apologies for replying to my own post, but in case you're curious about COM:
      A technical overview about COM
      Comprehensive COM site

    3. Re:minor nag by foniksonik · · Score: 4, Interesting

      Hmmm.... while you are correct, I believe that Apple knows that real developers will understand exactly how to use this SDK.

      They also know that this news will get published internationally and be a major PR move for them... so, they use a dumbed down version that more laymen and would-be technology editors and reviewers can understand so as to get the most bang for their PR buck.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
    4. Re:minor nag by Twirlip+of+the+Mists · · Score: 4, Insightful

      Obviously there was a little bit of miscommunication between the marketing person who wrote the press release and the developer who told them what COM is.

      Erm, no. Not exactly. Rather, the developer told the marketing guy what COM is, and the marketing guy replied, "Nobody cares about that. Tell me why people should care." The developer then rambled for ten minutes about remote object invocation and locational transparency. The marketing guy got up right in the middle of a sentence and said, "Lets you control iTunes, kinda like AppleScript. Got it. Thanks."

      --

      I write in my journal
  2. I know it won't happen... by AvantLegion · · Score: 4, Interesting
    ... but I wish iTunes would support WMA.

    Not that I have any myself, but there are a ton of radio stations that broadcast in WMA that I can't import into iTunes (you can add new stations into iTunes by copying any station into a playlist, and then editing the URL of the copy in the playlist. The new station only shows up in a playlist, instead of the Radio area, but good enough!).

    1. Re:I know it won't happen... by LordSah · · Score: 4, Interesting

      There exists a Windows Media Player SDK. Nothing stopping Apple from using it in iTunes.

    2. Re:I know it won't happen... by Anonymous Coward · · Score: 4, Interesting

      ... but I wish iTunes would support WMA.

      I second this. About a year ago, I converted my entire CD collection to 256 Kbps VBR WMA files, because it seemed like the best format at the time for quality versus space. Now I've discovered iTunes and love how it organizes music. But I can't play my music collection in there directly; if I drag them in, it offers to convert my files to AAC or MP3 format for me. Well, if it is able to convert them, surely it would be able to just play them instead!

  3. Re:Finally by Adian · · Score: 5, Insightful

    I think this is just another sign that Apple actually benefits from cross-platform applications. The roll-out of the IPod, then ITunes, it's all ultimately to make Apple products easier to use on Windows, since unfortunately it is running on a large share of home users desktops.

    --
    Adian
  4. I don't think this does what you think it does. by Temporal · · Score: 4, Interesting

    First of all, there is already an iTMS input plugin for Winamp. It has been around for some time. It uses the existing QuickTime SDK to play the music.

    This new SDK has nothing to do with that. Now, I haven't exactly had much time to review it, so I could be wrong, but what this new SDK looks like is scripting support for manipulating the iTunes interface. For instance, you can write scripts which build playlists, tag files, etc. Basically, this allows you to automate tasks that you might otherwise perform through the iTunes UI.

    On Mac OSX, such functionality has been available via AppleScript for some time. In fact, many OSX programs expose functionality like this via AppleScript -- a practice I wish were more widespread on other systems.

    Of course, Windows doesn't have AppleScript, but it does have COM, which I guess can be used in vaguely similar ways. So, they have exposed all this functionality via COM instead. The download includes some example scripts written in Javascript for creating playlists, removing dead files, etc. Of course, since it's COM, you can use pretty much any language you want to access it (including C/C++, though I wouldn't recommend it for this sort of thing).

    Kudos to Apple for doing this. They could have been snotty and kept the scripting abilities exclusive to OSX, but they instead chose to support both platforms equally.

    But, no, I don't think Winamp or WMP have anything to gain from this. Sorry.

    1. Re:I don't think this does what you think it does. by prockcore · · Score: 4, Insightful

      In fact, many OSX programs expose functionality like this via AppleScript -- a practice I wish were more widespread on other systems.

      Other systems usually go with an object broker, which is much more powerful than (although not as easy as) providing applescript hooks.

      On Windows you've got COM, on KDE you've got DCOP, on Gnome you've got CORBA.

      DCOP is probably the easiest, most flexable, and most widely implemented (Practically every KDE app has DCOP support.. while under Gnome, very few use Corba, probably due to the real/percieved slowness of it)

    2. Re:I don't think this does what you think it does. by IamTheRealMike · · Score: 4, Interesting
      Practically every KDE app has DCOP support.. while under Gnome, very few use Corba, probably due to the real/percieved slowness of it

      Actually a good ORB (such as ORBit) walks all over DCOP for RPC speed, the main reason CORBA never took off for desktop scripting is because it's API is a pain in the ass.

  5. misleading quote by G�tz · · Score: 5, Interesting
    Apple's recent release of an iTunes SDK for Windows provides the ability for third party programs, such as WinAmp and Windows Media Player, to support the AAC file format.
    They mean the DRMed AAC format by apple, there have been winamp plugins for the AAC format of the MPEG standards for a long time, even open source (but patented).
  6. Hilarious by Anonymous Coward · · Score: 5, Interesting

    Has anyone downloaded the SDK?

    It consists of just two files, plus documentation and samples.

    The two files are a 4KB .C file, and a 406KB .H file.

    Yes, 406KB. Good lord, that's one big header! :-) Is anything in iTunes not scriptable?

    1. Re:Hilarious by Ilgaz · · Score: 4, Interesting

      Ever seen Applescript applications? They even sell some of those commercially (shareware coders)! Its virtually possible to code a little game with applescript even.

      http://www.apple.com/applescript/

      The hilarious thing is IMHO, the Windows Scripting Language caused nothing but trouble on windows. I remember back in my windows days the first thing I did was disabling it after I do fresh install.

      For example, I use Applescript built in mail.app to check my IMAP box limits..

  7. Re:So when are we going to see some new formats? by Anonymous Coward · · Score: 5, Informative

    Well, iTunes for Windows actually uses Quicktime for playback.
    Theres this nice project over at SourceForge http://sourceforge.net/projects/qtcomponents/ with Ogg Vorbis components for Quicktime (and thus iTunes). It's still beta, and there is a pause when iTunes switch between formats, but it plays Ogg Vorbis.

    The crossfading can be found under Edit->Prefrerences->Effects.

  8. Re:So when are we going to see some new formats? by ender81b · · Score: 4, Interesting

    There is an ogg control that works double plus good for playing Ogg vorbis files under iTunes (at least on the mac and with 4.5).

    Clicky.

    I, personally, wish to god somebody would write some sort of plugin that would sort mp3's in some sane way. iTunes is absolutely horrible at handling mp3's and their various tags (or lack thereof) something winamp perfected years ago.

  9. COM on Mac too by edalytical · · Score: 4, Informative

    Or if you're curious about COM on Mac OS X:
    Component Object Model (COM) Development on Mac OS X

    --
    Win a signed Stephen Carpenter ESP Guitar from the Deftones: http://def-tag.com/?r=0008781
  10. Re:Finally by lotsofno · · Score: 4, Interesting

    A lot of Windows users have done pretty good without the SDK so far, in terms of iPod connectivity. If you need any proof, just look at ml_ipod, the open source iPod plug-in for Winamp. It integrates itself seamlessly into Winamp's media library and even has a couple hidden features you might not see with iTunes or even in other 3rd party applications like Ephpod. I know more than a few people who've already switched to Winamp for better iPod connectivity, including myself.

    Strangely enough, I've actually heard developers say they won't even touch the SDK: "The .h file is 10k lines. iTunes' bloat is infectious."

  11. WinAmp already supports AAC by Anonymous Coward · · Score: 5, Informative

    Winamp 5.x already supports AAC out of the "box"; it will rip to AAC quite transparently.

    Check it out... www.winamp.com; its worth it for the shoutcast capabilities alone.

  12. You didn't need the SDK by mactari · · Score: 4, Informative

    Though the header files, etc, are nice if you're a VC++ whiz, any two-bit Visual Basic 6 hacker like myself has had access to the iTunes COM objects for quite some time.

    Not only do you not need the SDK, aside from the sample code (strangely written in jscript of all things), the SDK is nearly worthless for VB6 hackers. All you had to do was open a new project in the VB6 IDE, select Project==References from the menus, and select iTunes 1.0 Type Library (the file is iTunes.exe no less).

    Voila. Instant COM compliant objects waiting for you to hack0rz. Hit F2 and search for iTunesLib and the documentation's already there (no SDK required) as well.

    If this SDK makes you aware you can hack iTunes, then great. But don't wait to download it to start hacking. Install iTunes, open VB6's IDE, and get a move on!

    To stick in a horrible Wizard of Oz (but thankfully not a Zardoz reference, I suppose), you've been wearing the ruby red slippers (or whatever) the whole time. "There's no place like ~. There's no place like ~."

    --

    It's all 0s and 1s. Or it's not.
  13. Re:Finally by NaugaHunter · · Score: 4, Funny

    OK, Bart, to the blackboard:

    Apple is a hardware company, not a software company.
    Apple is a hardware company, not a software company.
    Apple is a hardware company, not a software company.
    Apple is a hardware company, not a software company.
    Apple is a hardware company, not a software company.
    Apple is a hardware company, not a software company.
    Apple is a hardware company,

    As much as Apple gains from others' cross-platform applications, they don't generally gain much from making theirs cross-platform. The goal here is to tackle reasons to not use iTunes - you will probably still require an iPod to play this music on a personal player easily. (Other than using the CD-to-whatever route, of course.)

    --
    R: That voice. Where have I heard that voice before? B: In about 365 other episodes. But I don't know who it is either.
  14. This isn't as spiffy as it looks by M$+Mole · · Score: 4, Informative

    If you dl it and try it out, it's just a scripting SDK for the iTunes interface (I think someone else pointed this out as well). I downloaded it...fired up Visual Studio and build a quick Windows app with a button to create a new playlist.

    Click the button and watch as iTunes opens up. In fact, aside from instantiation of the iTunes object, there isn't a single function that I've been able to perform without iTunes opening up.

    Not saying it isn't pretty cool...but the COM interface isn't going to let you build tons of plugins, etc. without iTunes running on your desktop.

    --
    Karma: Non-existant. Due mostly to the fact that you smell funny and nobody likes you.
  15. SlimServer Support? by theroterts · · Score: 4, Interesting

    I wonder if this will allow the Slim Devices' Slim Server to have the necessary hooks to stream DRMed iTunes songs? Their FAQ states that Apple has not provided hooks to stream protected files. Slim Server was developed for their Sqeezebox, but the server software is open source and will stream just about anything you throw at it. Good stuff.

    --
    ?SYNTAX ERROR IN SIG

    READY.