Audio::M4P::Decrypt(3p)

NAME
Audio::M4P::Decrypt -- DRMS decryption of Apple iTunes style MP4 player files

DESCRIPTION
Originally derived from the DeDRMS.cs program by Jon Lech Johansen

SYNOPSIS
 use Audio::M4P::Decrypt;

 my $outfile = 'mydecodedfile';
 my $deDRMS = new Audio::M4P::Decrypt;
 $deDRMS->DeDRMS($mp4file, $outfile);

METHODS

new
     my $cs = new Audio::M4P::Decrypt;

     my $cs_conparam = Audio::M4P::Decrypt->new(
       strHome => '~', sPfix => '.', dirSep => '/' );

    Optional arguments: strHome is the directory containing the keyfile directory. After running VLC on a .m4p file under Windows, MacOS X, and Linux, this should be found by the module automatically (APPDATA dir under Win32, ~/ under OS X and Linux). sPfix is '.' for MacOS/*nix, nil with Windows. dirSep is the char that separates directories, often /.

    For debugging purposes, use eg:
     my $cs_conparam = Audio::M4P::Decrypt->new(
         DEBUG => 1, DEBUGDUMPFILE => 'm4ptree.html'
     );

    DEBUG turns on debugging output. DEBUGDUMPFILE is an output file name to dump an html picture of the m4p data structure.

DeDRMS
     my $cs = new Audio::M4P::Decrypt( forceclean => 1 );
     $cs->DeDRMS('infilename', 'outfilename');

    Decode infilename, write to outfilename. Reading slurps up an entire file, so output can overwrite the same file without a problem, we hope. Backup first. 'forceclean => 1' will also attempt to remove residual personal data from the file.

DecryptFile
    $cs->DecryptFile('infilename', 'outfilename');

    More descriptive alias for the DeDRMS method.

SEE ALSO

LWP::UserAgent::iTMS_Client
iTunes::Sid

NOTES
    This software is designed to allow different but fair use of music by the
    purchaser of the music. In no way is this software intended to facilitate
    use of digital music files by parties other than the purchaser of the
    originally DRM-protected material. That is Fair Use, corporate entities.

    If you need to locate your iTMS keys, look for compatible versions of
    JHymn or FairKeys, or use the LWP::UserAgent::iTMS_Client Perl module.

  Class Internal Functions

Decrypt
GetUserKey

AUTHOR
    Original C# version: copyright Jon Lech Johansen B<jon-vl@nanocrew.net>.
    Perl version: William Herrera B<wherrera@skylightview.com>.

SUPPORT
Questions, feature requests and bug reports should go to <wherrera@skylightview.com>.

COPYRIGHT
    Copyright (c) 2003-2005 William Herrera. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.