4/05/2019

ffmpeg를 이용한 mp3 파일 metadata 수정하기(Edit metadata in mp3 using ffmpeg)

테스트 중 mp3 파일에 metadata 편집할일이 있어서 exiftool로 수정하는데 이런 에러가 났습니다.

$ exiftool -artist=“hahwul<br>11" a.mp3
Error: Writing of MP3 files is not yet supported - a.mp3
    0 image files updated
    1 files weren't updated due to errors


지원 안한다고?? 그래서 찾아보니… 정말 지원 대상이 아니더군요.
https://www.sno.phy.queensu.ca/~phil/exiftool/



그래서 고민하다가 이참에 ffmpeg도 되나 싶어 찾아보니 가능하더라구요.
(예전에 취약점 때문에 보던걸 이런식으로 사용하게 될줄이야..)

간략하게 어떻게 확인하는지 정리해봅니다.

How to Install?

brew, apt, yum 등 패키지 관리자는 정말 좋은 것 같습니다. brew로 쉽게 설치 가능해요.
(단 디펜던시가 좀 많아서… 오래걸립니다)

$ brew install ffmpeg


진짜많다...

Edit mp3 metadata with ffmpeg

우선 대략적으로 실행 패턴과 옵션 정리를 먼저 해보면…

$ ffmpeg -i inputfile -metadata title="제목" outputfile

-i : 입력파일(즉 metadata를 변경할 파일)
-metadata : metadata 수정 옵션으로 하위 값으로 metadata 이름과 값이 들어갑니다.

음.. 뭐 별거없네요…

$ ffmpeg -i test.mp3 -metadata title="asdf<svg/onload=alert(45)>" -metadata Lyrics="this is lyrics<br>asd" inject_test.mp3



exiftool로 잘 됬나 봐보면…

$ exiftool inject_test.mp3
ExifTool Version Number         : 11.30
File Name                       : 123.mp3
Directory                       : .
File Size                       : 3.4 MB
File Modification Date/Time     : 2019:04:04 23:57:36+09:00
File Access Date/Time           : 2019:04:04 23:57:33+09:00
File Inode Change Date/Time     : 2019:04:04 23:57:36+09:00
File Permissions                : rw-r--r--
File Type                       : MP3
File Type Extension             : mp3
MIME Type                       : audio/mpeg
MPEG Audio Version              : 1
Audio Layer                     : 3
Audio Bitrate                   : 64 kbps
Sample Rate                     : 44100
Channel Mode                    : Stereo
MS Stereo                       : Off
Intensity Stereo                : Off
Copyright Flag                  : False
Original Media                  : False
Emphasis                        : None
ID3 Size                        : 175
Title                           : asdf<svg/onload=alert(45)>
Artist                          : Silent Partner
Album                           : YouTube Audio Library
Genre                           : Pop
User Defined Text               : (USLT) asdf<br>asdf
Encoder Settings                : Lavf58.20.100
Duration                        : 0:07:27 (approx)




ffmpeg metadata list 

(https://wiki.multimedia.cx/index.php/FFmpeg_Metadata#QuickTime.2FMOV.2FMP4.2FM4A.2Fet_al.)
KeyiTunes fieldLow-level identifier
"title"Name'\251nam'
"author"Artist'\251ART'
"album_artist"Album Artist'aART'
"album"Album'\251alb'
"grouping"Grouping'\251grp'
"composer"Composer'\251wrt'
"year"Year'\251day'
"track"Track Number'trkn'
"comment"Comments'\251cmt'
"genre"Genre'\251gen'
"copyright"??'\251cpy'
"description"Description'desc'
"synopsis"Information dialog when selecting "Show Description" in context menu'ldes'
"show"Show'tvsh'
"episode_id"Episode ID'tven'
"network"??'tvnn'
"lyrics"Lyrics'\251lyr'



HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

1 comment:

  1. exiftool 으로 metadata 바꾸는 방법은..
    https://www.hahwul.com/2017/08/web-hacking-metadata-payload.html 참고하시면 될듯합니다 :)

    ReplyDelete