Thread MP3 ID3 Tag
(46 answers)
Opened by timehandler at 2012-06-04 15:49 Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 #!/usr/bin/perl -w use strict; use MP3::Tag; use File::Find; use File::Copy; use Cwd; print "Pfad angeben wo die MP3's sind!!! [keine Eingabe - Aktuelles Verzeichnis]\n"; # Findet das Aktuelle Verzeichnis my $cwd = getcwd; while (<STDIN>) { chomp; $_ = <*.mp3>; find(\&wanted, $_);# findet alles was in dem angegebenen Verzeichnis ist } sub wanted { my ($mp3, $track, $artist,$dir,$info); return unless /mp3$/i; # alles was keine *.mp3 Endung hat wird nicht beachtet if ($mp3=MP3::Tag->new($_)) { print "$_ (Tags: ", join(", ",$mp3->get_tags),")\n"; my @info=$mp3->autoinfo; print "* Song: $info[0]\n"; print "* Track: $info[1]\n"; print "* Artist: $info[2]\n"; print "* Album: $info[3]\n"; print "* Comment: $info[4]\n"; ordner("$info[2] - $info[3]");#übergabe der tags zum ordner erstellen print "\n Ordner wurde bzw ist schon erstellt.\n"; #my $dir = "$cwd/Musik/$info[2] - $info[3]"; #mkdir( $dir ) or die "mkdir( $dir) failed: $!\n";{ #move ($_, "$cwd/$_") or die "Could not move '$_' to '$dir': $!";} my ($oldlocation,$newlocation); $oldlocation = "$cwd"; print "$oldlocation"; $newlocation = "$cwd/$info[2] - $info[3]/$_"; print "\n$newlocation\n"; move($oldlocation, $newlocation) or die "Could not move '$_' zu '$newlocation':$!"; } print "\n Weiter mit Enter!!\n"; } sub ordner { my ($dir) = @_; unless(-e $dir or mkdir $dir) { die "Unable to create $dir\n"; } } hier der gesamte code ich benutze windows. der ordner wird ja erstellt und existiert vorher nicht, dafür werden ja aus der mp3 datei die tags verwendet, auf groß oder kleinschreibung habe ich da keinen einfluss. Last edited: 2012-06-05 18:29:59 +0200 (CEST) |