diff options
Diffstat (limited to 'bin/tag-tracks')
| -rwxr-xr-x | bin/tag-tracks | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/bin/tag-tracks b/bin/tag-tracks new file mode 100755 index 0000000..609c4cd --- /dev/null +++ b/bin/tag-tracks @@ -0,0 +1,32 @@ +#!/usr/bin/env ruby + +require 'taglib' + +if ARGV.empty? + puts "ERROR: no argument given..." + puts "usage: tag-tracks TARGET_DIR" + exit 69 +end + +target_dir = ARGV.first + +Dir.chdir("#{target_dir}") + +puts "Tagging Tracks in #{Dir.pwd} ..." + +mp3_files = Dir.glob("*").sort_by { |x| File.basename(x).downcase } + +track_num = 1 + +mp3_files.each do |song| + song_name = File.basename(song, File.extname(song)) + TagLib::MPEG::File.open(song) do |file| + tag = file.id3v2_tag + tag.track = track_num + tag.title = "#{song_name}" + file.save + track_num += 1 + end +end + +puts "Done!" |
