Created
June 19, 2025 23:52
-
-
Save mamemomonga/38539e4ad5bdea23aaa42e9da7148cc7 to your computer and use it in GitHub Desktop.
カレントディレクトリのFLACファイルにタグをつける
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
# カレントディレクトリのFLACファイルにタグをつける | |
# ファイル名の「XYY_NNNN」からタグを作成する | |
use strict; | |
use warnings; | |
use feature 'say'; | |
use File::Find; | |
use File::Basename; | |
my @filelist; | |
find(sub { | |
return unless -f $_; | |
return unless /.flac/i; | |
push @filelist, $File::Find::name; | |
},'.'); | |
my %metadefault=( | |
TITLE => '', | |
TRACKNUMBER => '', | |
ARTIST => '谷山浩子', | |
ALBUMARTIST => '谷山浩子', | |
ALBUM => '空飛ぶ日曜日', | |
DATE => '1985/10/5', | |
COMMENT => 'PONY-CANNON ARRD-VARK C28A0438', | |
); | |
my @cmds; | |
foreach my $fn (sort @filelist) { | |
my $fn2=basename($fn); | |
my %meta=%metadefault; | |
if($fn2=~/^([A-Z]?\d{2})_(.+)\.flac$/) { | |
$meta{TRACKNUMBER}=$1; | |
$meta{TITLE}=$2; | |
push @cmds,['metaflac','--remove-all-tags',$fn]; | |
push @cmds,['metaflac',(map {qq{--set-tag=$_=$meta{$_}}} keys %meta),$fn]; | |
} | |
} | |
foreach(@cmds) { | |
say join(' ',@{$_}); | |
system(@{$_}); | |
if ($? == -1) { | |
die "---- failed to execute: $!\n"; | |
} elsif ($? & 127) { | |
die sprintf("---- child died with signal %d, %s coredump\n",($? & 127),($? & 128) ? 'with' : 'without'); | |
} else { | |
my $ce=$? >> 8; | |
if($ce != 0) { | |
die sprintf("---- child exited with value %d\n", $ce) if $ce != 0; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment