From 07825626463891aac2c5b90c129a3e74aef85df4 Mon Sep 17 00:00:00 2001 From: Jackson Abascal Date: Wed, 15 Mar 2023 18:39:42 -0700 Subject: [PATCH 1/2] Add frame header format to MP3 score --- mutagen/mp3/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mutagen/mp3/__init__.py b/mutagen/mp3/__init__.py index 1c9b7e5c..fa7b41d3 100644 --- a/mutagen/mp3/__init__.py +++ b/mutagen/mp3/__init__.py @@ -455,7 +455,11 @@ def mime(self): def score(filename, fileobj, header_data): filename = filename.lower() - return (header_data.startswith(b"ID3") * 2 + + return ((header_data.startswith(b"ID3") or + header_data.startswith(b'\xFF\xF2') or + header_data.startswith(b'\xFF\xF3') or + header_data.startswith(b'\xFF\xFA') or + header_data.startswith(b'\xFF\xFB')) * 2 + endswith(filename, b".mp3") + endswith(filename, b".mp2") + endswith(filename, b".mpg") + endswith(filename, b".mpeg")) From 7c1e706937df1a8e500e38eee6374390468c9719 Mon Sep 17 00:00:00 2001 From: Jackson Abascal Date: Thu, 16 Mar 2023 02:48:15 -0700 Subject: [PATCH 2/2] add test mp3 with no tags --- tests/data/no-tags.mp3 | Bin 0 -> 2504 bytes tests/test___init__.py | 1 + 2 files changed, 1 insertion(+) create mode 100644 tests/data/no-tags.mp3 diff --git a/tests/data/no-tags.mp3 b/tests/data/no-tags.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..bece835963ce4aad0a64ff6d07bcd81ec3ce727c GIT binary patch literal 2504 zcmds(XHe656UTob1dtL!A~lg10)hq!2nvWNB25TNSK81*i4mnlJ+WM*g%(PLNC_TC zITeja6KR47NJvDG02VkwKomU*a43lIfAYMz=biJsxmWj@+1Z)ho!R}(Z)U#>t>uux z|KT|0RD`$$E;cCuzO? zW<=H z4bu6orOPi7rzpEywlODm+SMLAeTcpH=n*WCKp+s~Vg?ZiB(y%>0f0Dw5eLQqnD_}^ zq(2YkDcDY|LD0tb@5(?KVbU|h?qad*xhy+|+SXXPV(H+md{a%|jyc4eO_ifGrHOMfMQS=OZ}r%2asLf)m5%ChuPI73O@rJM`Y5jJP}-OD(>)vB<)t3vX}otzbUk)@K}5 zu^Ra!dgI2Y3;A}dFQ>~DpAS0CuJLr4&PLB?H+A$Isv_%Lx4ND=&w1;)G}IXJv6t%A z2y^#5zq-!n+#YKxq2Rsi;qh-Ev+s=tY&YAT*52Is;0XZqo`f*Vtflp(xc5U`ExMo1 z2ALKk;%ThISqT!EZj-AIB~wiFwMx^a46f0LzzQWJiyoNZwSs8f=KG+5Si5Z)n$Y= zX84j&XrcJ3I(j;q?Z!^~uaNeX7T3 z^;t6jG>H<@L>rCvGMFTsT_j7Xt}pgkX>hC&h5BT|)YX0Hnph4&p>4ILZ zblpYkTtu#(wgVCAYC=DoaGaPLBXa2y1wWC9oJ7m14a7-IJ84~WaW^N|b0G2VA*M>J z`gk0RDg`8|=9EvF0M7Jt@oE4P1>6%~?zu_~`9>DvDvn?StsnN^rwOQgc2(4)(w!@^ zZ+V}Mm$OLLE?wgLm0mr$&id4Lk{h1-xgnl?BZ88!*JnA|f5^`TeiPgSTe`j|k&-qk z8HdV~b`bF<$NEN+vML7f-jyEsN&oQpx7CHwH#jiXX~#|tcZO1&;o`H2E_nKZlg#!p zyB8Il2*_c|FZK&`Q_>pPM9(*6Jp(-%_Sal6_>xpUPyP?`jAM*r!s~>@L^^ufshFKq zLoVrepQCsZf~T$C`IR>?CNJyc%h#5*WIN~Ns;a^DFxO8`?@x0mr`>MResd-+`}78L zywEB+)6H154K=(BT}=Ht|4nCLnwaMUQp445?KM0{mz6H$0EdXY{l+w1B`c!cqljoM zB16qg_$!LJzQ0n<9qh8OOHT51yU94~iK{c4uDt<41#j{Ll5*9b{t1zfxEY!c>Y#(! zJKeci0hP^B?;9b3p;@xmp+2Y0E??K*HdEfudI4pBb^t9OKXspX7Fru1!+?xs__5Da zAXRtAGU}-{K$pCGi}_vk@8?D4mCVj^San)I?GjQT=CSmCJI(YP?pv9hkV(&oGo?fA{3mjhZ_ zxTCZ3^$&(`bhho!d>gCbZxe3$!MRD{P;3EJ!yCDJsHX74xApNNzm3Ub&Yk~r)uey!*<(VC;C)b zDwRaIjfP%8&U5>Es}6-`1r@yQ)`NRouHGW``@3Z~e`9la?XSXF z83*?WfieKFvLFntHP|>O`ptL#jw$tI0Tym#v@(SEl&q1@-;nQ6JPm*0w;&HLbqG4@ z%A(Y*_F>VWR@64hOfe@XE{kx=g9+V|V=zMuZW0-zq*0yXfIw(V_sf#dgU@MkP6{rU zHCtVAdr^RsghJQR((xZ?9T~rDK}h%6{DOFdGdLKCCJ#1A=sDZUR(N9%EW|M%IVl8v zKs{K)cG57m+iXj=_1G@hg$=R3LaN8#F^vUin+d(1-X=jxL7yrE%>164b}OxOfkoz} zy^ZXB4Xq;43nKFa5X8HRbdMB^y(LBkD5Oz+q17;D7lY9iV)S3l`!=Lp@2R*Mbapw* z{2a@OUYzXN9;!}O8bZ3C<2a6W2d=Ul)%we!**oQ)1JL^G5)5SHI}i0Ro!S38HLCt$ lpfzPOAzK6hMFs#_02HwkKtinN72-Ew0WhVD)%Txh`5zO(I4S@D literal 0 HcmV?d00001 diff --git a/tests/test___init__.py b/tests/test___init__.py index cc813517..6da8d020 100644 --- a/tests/test___init__.py +++ b/tests/test___init__.py @@ -481,6 +481,7 @@ def test_dict(self): os.path.join(DATA_DIR, "bad-xing.mp3"), os.path.join(DATA_DIR, "xing.mp3"), os.path.join(DATA_DIR, "silence-44-s.mp3"), + os.path.join(DATA_DIR, "no-tags.mp3"), ], Musepack: [ os.path.join(DATA_DIR, "click.mpc"),