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.