فهرست منبع

Initial M4A tag support

Zachary Kotlarek 9 سال پیش
والد
کامیت
eb11ad7853
1فایلهای تغییر یافته به همراه24 افزوده شده و 2 حذف شده
  1. 24 2
      rss.pl

+ 24 - 2
rss.pl

@@ -3,6 +3,7 @@ use strict;
 use warnings;
 use Cwd qw(abs_path);
 use MP3::Tag;
+use Audio::M4P::QuickTime;
 use XML::Feed;
 use LWP::Simple;
 use HTML::Strip;
@@ -360,10 +361,31 @@ foreach my $time (sort(@need)) {
             goto OUT;
         }
         $mp3->close();
+
     } elsif ($ep->{'ext'} eq 'm4a') {
-        if ($DEBUG) {
-            print STDERR "MP4 munging not complete\n";
+
+        # Parse the MP3=4
+        my $m4a = Audio::M4P::QuickTime->new(file => $file);
+        if (!$m4a) {
+            $err = 'Unable to parse MP4 tags in: ' . $file . "\n";
+            goto OUT;
         }
+
+        # Update tags
+        $m4a->title($ep->{'title'});
+        $m4a->year(time2str('%Y', $ep->{'time'}));
+        $m4a->comment($ep->{'description'});
+        $m4a->track(1);
+        $m4a->album($SERIES);
+        $m4a->artist($SERIES);
+        $m4a->genre_as_text($GENRE);
+
+        # Save
+        if (!$m4a->WriteFile($file)) {
+            $err = 'Unable to update M4A tags in: ' . $file . "\n";
+            goto OUT;
+        }
+
     } else {
         print STDERR 'Tag munging not available for ' . $ep->{'ext'} . ' files: ' . $file . "\n";
     }