Slashdot Mirror


iTunes User Sues Apple Over Lock-In

GregChant writes "It seems like Apple can also be at the receiving end of a lawsuit, too: Californian Thomas Slattery filed suit against Apple because 'Apple has turned an open and interactive standard into an artifice that prevents consumers from using the portable hard drive digital music player of their choice'. With over 200 million songs sold, and Apple controlling over 80% of the hard drive digital audio player market, is this just a case of someone just trying to cash in on Apple's success? Or is this genuinely an issue of buyer lock-in and monopolistic practices?"

2 of 975 comments (clear)

  1. Re:I agree... by BWJones · · Score: 5, Informative

    It's not illegal until they start bundling features people want and expect as a convience

    No. It is not illegal until a company leverages their monopoly to prevent others from fairly competing. If your monopoly is fairly maintained because you have the best product and consumers simply prefer to purchase your product, then all is fair and no laws have been broken.

    --
    Visit Jonesblog and say hello.
  2. Convert iTunes file to mp3 by superpulpsicle · · Score: 5, Informative

    This script is readily available on the internet. This is part of the hymn project, which is LEGAL. I DID NOT write this script!

    Just download hymn.exe, faad.exe, lame.exe in the same folder as this VB script. Name it something.vbs. Drag your iTunes .m4p files onto this script, and out comes mp3 with all your personal credentials deleted. You can play this anywhere, and share at will without worry.

    'coded by man on street

    Set oFs = CreateObject ("Scripting.FileSystemObject")
    Set oShell = WScript.CreateObject("WScript.Shell")
    Set id3Options = CreateObject("Scripting.Dictionary")

    binDir = oFs.GetFile(WScript.ScriptFullName).ParentFolder & "\"
    workingDir = binDir & "working\"
    decodedDir = binDir & "decoded\"

    id3Options.Add "title", "--tt"
    id3Options.Add "artist", "--ta"
    id3Options.Add "album", "--tl"
    id3Options.Add "date", "--ty"
    id3Options.Add "track", "--tn"
    id3Options.Add "genre", "--tg"

    makeDirectory(workingDir)
    makeDirectory(decoded Dir)

    For Each arg in WScript.Arguments
    walkArguments(arg)
    Next

    removeDirectory(workingDir)

    Sub convertFile(fileName)
    Set protectedFile = oFs.GetFile(fileName)
    albumName = protectedFile.ParentFolder.Name
    albumDir = decodedDir & albumName & "\"
    makeDirectory(albumDir)
    protectedFile.Copy(workingDir)
    trackName = oFs.GetBaseName(protectedFile)
    return1 = oShell.Run(quote(binDir & "hymn") & " " & quote(workingDir & trackName & ".m4p"), 1, TRUE)
    return2 = oShell.Run(quote(binDir & "faad") & " " & quote(workingDir & trackName & ".m4a"), 1, TRUE)
    Set LaunchedApp = oShell.Exec(quote(binDir & "faad") & " -i " & quote(workingDir & trackName & ".m4a"))
    tagInfo = LaunchedApp.StdErr.ReadAll

    For Each tag in id3Options.Keys
    tagSwitches = tagSwitches & " " & id3Options.Item(tag) & " " & quote(getTag(tag, tagInfo))
    Next

    rem return3 = oShell.Run(quote(binDir & "lame") & tagSwitches & " " & quote(workingDir & trackName & ".wav") & " " & quote(albumDir & trackName & ".mp3"), 1, TRUE)
    return3 = oShell.Run(quote(binDir & "lame") & " --ignore-tag-errors " & tagSwitches & " " & quote(workingDir & trackName & ".wav") & " " & quote(albumDir & trackName & ".mp3"), 1, TRUE)
    End Sub

    Sub walkArguments(arg)
    If oFs.FolderExists(arg) Then
    Set thisDir = oFs.GetFolder(arg)
    Set subDirs = thisDir.SubFolders
    Set theseFiles = thisDir.Files

    If subDirs.Count > 0 Then
    For Each dirName in subDirs
    walkArguments(dirName)
    Next
    End If

    For Each fileName in theseFiles
    walkArguments(fileName)
    Next

    ElseIf oFs.FileExists(arg) Then

    If oFs.GetExtensionName(arg) = "m4p" Then
    convertFile(arg)
    End If

    End If
    End Sub

    Sub makeDirectory(dirName)
    If Not oFs.FolderExists(dirName) Then
    oFs.CreateFolder(dirName)
    End If
    End Sub

    Sub removeDirectory(dirName)
    If oFs.FolderExists(dirName) Then
    oFs.GetFolder(dirName).Delete
    End If
    End Sub

    Function quote(myString)
    quote = Chr(34) & myString & Chr(34)
    End Function

    Function getTag(frameName, tagString)
    Set oRegEx = New RegExp
    oRegEx.Pattern = frameName & ".+\n"
    frameNameAndValue = oRegEx.Execute(tagString).Item(0).Value
    frameValue = Mid(frameNameAndValue, InStr(frameNameAndValue, ":") + 2)
    getTag = Left(frameValue, Len(frameValue) - 2) 'Strip CR/LF
    End Function