On 2 Apr 2011, at 09:02, Jimmy Aitken wrote:

> There is a version of AtomicParsley which tags the 'longDescription'
> field.  I have a modified version of AtomicParsley which allows this
> and have a small patch which allows this tag to be added if the
> version supports it.  Here's the patch to allow it.  Line numbers may
> vary due to the other patches I've added recently.
> 
> --- get_iplayer.orig  2011-04-02 08:59:43.000000000 +0100
> +++ get_iplayer       2011-04-02 08:59:11.000000000 +0100
> @@ -4384,6 +4384,12 @@
>                               push @cmd, "--album", $prog->{name};
>                       }
> 
> +                     # Check to see if AtomicParsley has been modified to 
> allow full description
> +                     my $atomic_log = `$bin->{atomicparsley} /dev/null 
> --longDescription 2>&1`;
> +                     if ( $atomic_log =~ /requires an argument/ ) {
> +                             push @cmd, '--longDescription', $tags->{desc};
> +                     }
> +
>                       # Add the thumbnail if one was downloaded
>                       push @cmd, "--artwork", $prog->{thumbfile} if -f 
> $prog->{thumbfile};

For iTunes users, the "long description" atom will be sort of hidden away, so 
not so useful.  Are there other media managers/players that make more use of 
that atom?  For a more easily viewable (and editable) presentation of the long 
description in iTunes, use the "--lyrics" arg to atomicparsley.  It should be 
available in all versions, and can be used alongside "--longDescription".

That said, a couple of notes on the patch above:  There is at least one version 
of atomicparsley that uses "--longdesc" instead of "--longDescription".  I 
think long description support postdates the time when the original developers 
quit working on atomicparsley, so has been done ad hoc.  Also, the above code 
is Linux/OSX-only since /dev/null isn't known on Windows (where the equivalent 
is NUL).  However, below is another suggestion for handling "--longDescription" 
in a more generic manner.  The line numbers reflect that the patch is against 
Shevek's M4A code, but falls outside his changes, so it should be easy enough 
to paste it into the released version as well.

--- a/get_iplayer
+++ b/get_iplayer
@@ -53,6 +53,7 @@ use Env qw[@PATH];
 use Fcntl;
 use File::Copy;
 use File::Path;
+use File::Spec;
 use File::stat;
 use Getopt::Long;
 use HTML::Entities;
@@ -4366,6 +4367,20 @@ sub tag_file {
                        # Add the thumbnail if one was downloaded
                        push @cmd, "--artwork", $prog->{thumbfile} if -f 
$prog->{thumbfile};
 
+                       # Add long description if supported by atomicparsley
+                       my $devnull = File::Spec->devnull();
+                       my $longDescriptionOpt;
+                       foreach my $opt ("--longDescription", "--longdesc") {
+                               my $atomic_log = `atomicparsley $devnull $opt 
2>&1`;
+                               if ( $atomic_log =~ /requires an argument/ ) {
+                                       $longDescriptionOpt = $opt;
+                                       last;
+                               }
+                       }
+                       if ($longDescriptionOpt) {
+                               push @cmd, $longDescriptionOpt, $tags->{desc};
+                       }
+
                        # time of recording - this messes up iTunes somewhat
                        #push @cmd, "--purchaseDate", 
"$prog->{dldate}T$prog->{dltime}Z" if $prog->{dldate} && $prog->{dltime};


_______________________________________________
get_iplayer mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/get_iplayer

Reply via email to