убрать ID теги другой из сырого MP3 - PullRequest
0 голосов
/ 06 ноября 2010

Я хочу получить чистый Mp3-файл без каких-либо дополнительных данных, таких как теги id, изображение обложки, информация о кодировщике или что-то еще Просто mp3 в действительном файле, который может воспроизводить любой mp3-плеер.

Я начал с этого: Доступ к аудиоданным MP3 независимо от тегов ID3? http://code.google.com/p/kodebucket/source/browse/trunk/bin/mp3dump.rb

Хорошо работает, чтобы получить действительный хэш mp3 без тегов id, но когда вы сохраняете вывод в файл mp3, он прерывается.

Может быть, у вас есть идея, как получить эту работу.

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

это должно быть довольно просто с этой библиотекой Ruby:

http://unixgods.org/~tilo/Ruby/ID3/docs/index.html

предпочтительно версия 0.5.0 или выше

проверьте файлы в каталоге примеров, когда гем установлен

require 'id3'

filename = "bla.mp3"
if ID3.hasID3v1tag?( filename ) || ID3.hasID3v2tag?( filename )

   puts "File size: #{ File::Stat.new(filename).size }"   # file size including tags

   myfile = ID3::AudioFile.new( filename )
   puts "Audio length: #{myfile.audioLength}"    
   puts "Audio MD5sum: #{myfile.audioMD5sum}"

   # delete both id3 v1 and id3 v2 tags from the file:
   myfile.tagID3v1 = nil     # it might be a good idea to store the info somewhere before deleting it
   myfile.tagID3v2 = nil
   myfile.write              # we only write if we modified it..

end

например: интерактивное тестирование в irb

# /usr/bin/irb
irb> RUBY_VERSION
 => "1.8.6" 
irb>  require 'id3'   # version 0.5.0
 => true 
irb> filename = '/tmp/b.mp3'
 => "/tmp/b.mp3" 
irb>      puts "File size: #{ File::Stat.new(filename).size }"
File size: 8040064
irb>      myfile = ID3::AudioFile.new( filename )
irb>    puts "Audio length: #{myfile.audioLength}"    
Audio length: 8037877
irb>    puts "Audio MD5sum: #{myfile.audioMD5sum}"
Audio MD5sum: 47719e1881e5a2488e51fc250ccd2396
irb>       # /usr/bin/irb
irb> RUBY_VERSION
 => "1.8.6" 
irb>  require 'id3'   # version 0.5.0
 => true 
irb> filename = '/tmp/b.mp3'
 => "/tmp/b.mp3" 
irb>      puts "File size: #{ File::Stat.new(filename).size }"
File size: 8040064
irb>      myfile = ID3::AudioFile.new( filename )
irb>    puts "Audio length: #{myfile.audioLength}"    
Audio length: 8037877
irb>    puts "Audio MD5sum: #{myfile.audioMD5sum}"
Audio MD5sum: 47719e1881e5a2488e51fc250ccd2396
irb> myfile.tagID3v2
 => {"ARTIST"=>{"encoding"=>0, "text"=>"Juno reactor"}, "CONTENTTYPE"=>{"encoding"=>0, "text"=>"Electronica/Dance"}, "ALBUM"=>{"encoding"=>0, "text"=>"Bible of Dreams"}, "ENCODEDBY"=>{"encoding"=>0, "text"=>"iTunes v2.0"}, "TRACKNUM"=>{"encoding"=>0, "text"=>"6/9"}, "TITLE"=>{"encoding"=>0, "text"=>"Kaguya Hime"}, "YEAR"=>{"encoding"=>0, "text"=>"1997"}, "COMMENT"=>{"encoding"=>0, "language"=>"eng", "short"=>"iTunes_CDDB_IDs", "long"=>"9+647C467468A248173A4A203ED2204CAB+163399"}} 

irb>      myfile.tagID3v1 = nil
irb>      myfile.tagID3v2 = nil
irb>      myfile.write
irb>  puts "File size: #{ File::Stat.new(filename).size }"
File size: 8037877
0 голосов
/ 05 октября 2011

Попробуйте BulkID3, если вы используете Linux или Mac. http://sourceforge.net/projects/bulkid3

...