The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

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

DESCRIPTION

Derivation 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);

    See also the M4pDecrypt.pl example program in this distribution.

METHODS

new

my $cs = new Audio::M4pDecrypt;

my $cs_conparam = Audio::M4P::Decrypt->new( strHome => '/winroot/Documents and Settings/administrator/Application Data', 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; $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.

DecryptFile

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

More descriptive alias for the DeDRMS method.

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. 

    From Jon Lech Johansen:

        DeDRMS requires that you already have the user key file(s) for
        your files. The user key file(s) can be generated by playing
        your files with the VideoLAN Client [1][2].
    [1] http://www.videolan.org/vlc/ [videolan.org]
    [2] http://wiki.videolan.org/tiki-read_article.php?articleId=5 [videolan.org]

    Note that later versions of iTunes are not compatible with vlc's key finding;
    for locating keys, look for compatible versions of FairKeys or use the 
    LWP::UserAgent::iTMS_Client Perl module when available.

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.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 148:

'=item' outside of any '=over'

Around line 167:

You forgot a '=back' before '=head1'