Python ↔ JS parity

June 2, 2026 · View on GitHub

How guessit-js differs from reference Python guessit 3.8.0, every case shown in full [filename] + key: <python> vs <js> format. Grouped by verdict: ① TO FIX (we're wrong) · ② NEUTRAL (undecided) · ③ WON'T FIX (we're already more correct). Auto-generated — regenerate with node --import tsx scripts/pydiff.mjs --verdicts. ---- Total diverging: 47 (known-OK skipped: 1) of 1009 (vs Python 3.8.0) Real (excl. 11 env-specific mimetype): 36 Verdicts: FIX 0 · NEUTRAL 12 · KEEP 35



############## ① TO FIX — guessit-js is wrong (0) ##############


############## ② NEUTRAL — undecided (12) ##############

===== undecided =====
[/11.22.63/Season 1/11.22.63.106.hdtv-abc]
    episode: [11,22,63] vs [11,22,6,63]
    title: "06" vs undefined
    date: undefined vs "1963-11-22"
    » date-show "11.22.63"; both parse imperfectly
[555.S01.1080p.VMEO.WEBRip.AAC2.0.x264-BTN]
    absolute_episode: 555 vs undefined
    title: undefined vs "555"
    » py absolute_episode 555 vs js title "555"
[BarFood christmas special HDTV]
    title: "barfood christmas special" vs "barfood christmas"
    type: "movie" vs "episode"
    episode_details: undefined vs "special"
    episode_title: undefined vs "special"
    » title/type/episode_details disagreement
[Cuerpo de Elite  - Temporada 1 [HDTV 720p][Cap.113][AC3 5.1 Esp Castellano]\CuerpoDeElite720p_113_desca202.mkv]
    episode_title: "desca202" vs "p"
    » py episode_title "desca202" vs js "p"; both poor
[FooBar.7v3.PDTV-FlexGet]
    title: "foobar 7v3" vs "foobar 7"
    version: undefined vs 3
    » version 3 vs title "foobar 7v3"
[MacGyver.2016.S02E09.CD-ROM.and.Hoagie.Foil.1080p.AMZN.WEBRip.DDP5.1.x264-NTb-Scrambled/c329b27187d44a94b4a25b21502db552.mkv]
    episode_title: undefined vs "rom and hoagie foil"
    » obfuscated; js partial episode_title, py none
[MotoGP.2016x03.USA.Race.BTSportHD.1080p25]
    episode_title: "usa race btsporthd" vs "race btsporthd"
    country: undefined vs "us"
    » js country US vs py "usa race…"
[Movies/Bunker Palace Hôtel (Enki Bilal) (1989)/Enki Bilal - Bunker Palace Hotel (Fr Vhs Rip).avi]
    alternative_title: "bunker palace hotel" vs "enki bilal"
    » accent case (also the 1 JS↔WASM diff)
[Show.Name.s10e15(233).480p.BDRip-AVC.Ukr.hurtom]
    episode_title: undefined vs "233"
    » js episode_title "233" (the absolute number) vs py drops it
[Something.Other.Season.1&3-1to12ep.avi]
    episode_title: "1to12ep" vs ["1to","ep"]
    episode: undefined vs 12
    » py "1to12ep" vs js episode 12 + ["1to","ep"]
[[7.1.7.8.5] Foo Bar - 11 (H.264) [5235532D].mkv]
    release_group: "7.8.5" vs undefined
    » py release_group "7.8.5" vs js none
[[GroupName].Show.Name.-.02.5.(Special).[BD.1080p]]
    episode_title: "5" vs undefined
    » py "5" vs js "5 special"


############## ③ WON'T FIX — guessit-js is already more correct (35) ##############

===== JS better — Python misses it =====
[/Show Name S2/[Group].Show.Name.S2.-.19.[1080p]]
    episode_title: "19" vs undefined
    episode: undefined vs 19
    » anime "S2 - 19" → episode 19 (Python leaves episode_title "19")
[/Show.Name.S2/[Group].Show.Name.S2.-.19.[1080p]]
    episode_title: "19" vs undefined
    episode: undefined vs 19
    » anime "S2 - 19" → episode 19 (Python leaves episode_title "19")
[60.Minutes.2008.12.14.HDTV.XviD-YT]
    title: "minutes" vs "60 minutes"
    » title "60 Minutes" (py drops the "60")
[Deadpool.2016.4K.2160p.UHD.HQ.8bit.BluRay.8CH.x265.HEVC-MZABI.mkv]
    other: "high quality" vs ["high quality","ultra hd"]
    » UHD → Ultra HD (py omits)
[Masala (2013) Telugu Movie HD DVDScr XviD - Exclusive.avi]
    language: undefined vs "tel"
    » Telugu detected (py misses)
[Outrageous.Acts.of.Science.S05E02.Is.This.for.Real.720p.HDTV.x264-DHD]
    episode_title: "is this for" vs "is this for real"
    other: "proper" vs undefined
    proper_count: 2 vs undefined
    » episode_title "Is This for Real" kept; Python truncates at a phantom Proper(real)
[PlayboyPlus.com_16.01.23.Eleni.Corfiate.Playboy.Romania.XXX.iMAGESET-OHRLY]
    title: "playboyplus com" vs undefined
    website: undefined vs "playboyplus.com"
    » website extracted (py keeps in title)
[PutaLocura.15.12.22.Spanish.Luzzy.XXX.720p.MP4-oRo]
    language: undefined vs "spa"
    » Spanish detected (py misses)
[Series/Duckman/Duckman - 101 (01) - 20021107 - I, Duckman.avi]
    absolute_episode: undefined vs 1
    » absolute_episode detected
[Series/Duckman/Duckman - 110 (10) - 20021218 - Cellar Beware.avi]
    absolute_episode: undefined vs 10
    » absolute_episode detected
[TEST.2015.1080p.3D.BluRay.Half-OU.x264.DTS-HD.MA.7.1-ABC]
    other: "3d" vs ["3d","half ou"]
    » stereoscopic 3D "Half OU" (py drops)
[TEST.2015.1080p.3D.BluRay.Half-OU.x264.DTS-HD.MA.TrueHD.7.1.Atmos-ABC]
    other: "3d" vs ["3d","half ou"]
    » stereoscopic 3D "Half OU" (py drops)
[TEST.2015.1080p.3D.BluRay.Half-SBS.x264.DTS-HD.MA.7.1-ABC]
    other: "3d" vs ["3d","half sbs"]
    streaming_service: "sbs" vs undefined
    » stereoscopic 3D "Half SBS" (py drops)
[TEST.2015.1080p.3D.BluRay.Half-SBS.x264.DTS-HD.MA.TrueHD.7.1.Atmos-ABC]
    other: "3d" vs ["3d","half sbs"]
    streaming_service: "sbs" vs undefined
    » stereoscopic 3D "Half SBS" (py drops)
[TEST.2015.1080p.HC.WEBRip.x264.AAC2.0-ABC]
    other: "rip" vs ["hardcoded subtitles","rip"]
    » HC = Hardcoded Subtitles (py omits)
[The Big Bang Theory S01E00 PROPER Unaired Pilot TVRip XviD-GIGGITY]
    episode_title: undefined vs "unaired pilot"
    » episode_title "Unaired Pilot"
[[Group].Show.Name.S2.-.19.[1080p]]
    episode_title: "19" vs undefined
    episode: undefined vs 19
    » anime "S2 - 19" → episode 19 (Python leaves episode_title "19")

===== legit alternative title (verified) =====
[A Bout Portant (The Killers).PAL.Multi.DVD-R-KZ]
    alternative_title: undefined vs "the killers"
    » "À bout portant" 1964 = "The Killers"
[Battle Royale (2000)/Battle.Royale.(Batoru.Rowaiaru).(2000).(Special.Edition).CD1of2.DVDRiP.XviD-[ZeaL].avi]
    alternative_title: undefined vs "batoru rowaiaru"
    » Japanese romaji of "Battle Royale"
[Youth.In.Revolt.(Be.Bad).2009.MULTI.1080p.LAME3*92-MEDIOZZ]
    alternative_title: undefined vs "be bad"
    » "Be Bad!" French/intl release title
[[XCT].Le.Prestige.(The.Prestige).DVDRip.[x264.HP.He-Aac.{Fr-Eng}.St{Fr-Eng}.Chaps].mkv]
    alternative_title: undefined vs "the prestige"
    » English original of "Le Prestige"

===== mimetype (OS-specific /etc/mime.types) =====
[Bad Boys 2 1080i.mpg2.rus.eng.ts]
    mimetype: "text/vnd.trolltech.linguist" vs "video/mp2t"
    » Python value is env-specific/bogus; JS undefined or correct
[Game of Thrones S03E06 1080i HDTV DD5.1 MPEG2-TrollHD.ts]
    mimetype: "text/vnd.trolltech.linguist" vs "video/mp2t"
    » Python value is env-specific/bogus; JS undefined or correct
[Its.A.Wonderful.Life.1946.Colorized.720p.BRRip.999MB.MkvCage.com]
    mimetype: "application/x-msdos-program" vs undefined
    » Python value is env-specific/bogus; JS undefined or correct
[Justin Timberlake - MTV Video Music Awards 2013 1080i 32 Mbps DTS-HD 5.1.ts]
    mimetype: "text/vnd.trolltech.linguist" vs "video/mp2t"
    » Python value is env-specific/bogus; JS undefined or correct
[Katy Perry - Pepsi & Billboard Summer Beats Concert Series 2012 1080i HDTV 20 Mbps DD2.0 MPEG2-TrollHD.ts]
    mimetype: "text/vnd.trolltech.linguist" vs "video/mp2t"
    » Python value is env-specific/bogus; JS undefined or correct
[Show.Name.S01.Season.Complet.WEBRiP.Ro.Subbed.TM]
    mimetype: "text/texmacs" vs undefined
    » Python value is env-specific/bogus; JS undefined or correct
[Show.Name.S01E03.HDTV.Subtitulado.Esp.SC]
    mimetype: "application/vnd.ibm.secure-container" vs undefined
    » Python value is env-specific/bogus; JS undefined or correct
[Show.Name.S01E03.HDTV.Subtitulado.Espanol.SC]
    mimetype: "application/vnd.ibm.secure-container" vs undefined
    » Python value is env-specific/bogus; JS undefined or correct
[Show.Name.S01E03.HDTV.Subtitulado.Español.SC]
    mimetype: "application/vnd.ibm.secure-container" vs undefined
    » Python value is env-specific/bogus; JS undefined or correct
[Show.Name.S03.1080p.BlurayMUX.AVC.DTS-HD.MA]
    mimetype: "application/mathematica" vs undefined
    » Python value is env-specific/bogus; JS undefined or correct
[Show.Name.S06E05.1080p.WEBRip.Legendado.PT]
    mimetype: "application/vnd.snesdev-page-table" vs undefined
    » Python value is env-specific/bogus; JS undefined or correct

===== JS better — Python year→season bug =====
[Show!.Name.2.-.10.(2016).[HorribleSubs][WEBRip]..[HD.720p]]
    season: 2016 vs undefined
    » numeric alt dropped; py reads 2016 as season
[Show.Name.-.07.(2016).[RH].[English.Dubbed][WEBRip]..[HD.1080p]]
    season: 2016 vs undefined
    » numeric alt dropped; py reads 2016 as season
[Show.Name.-.476-479.(2007).[HorribleSubs][WEBRip]..[HD.720p]]
    season: 2007 vs undefined
    » numeric alt dropped; py reads 2007 as season

----- category counts -----
  11  mimetype
   4  other:episode,episode_title
   4  title
   4  spurious-alternative_title
   4  spurious-episode_title
   4  other:other
   3  season
   2  other:episode_title
   2  language
   2  other:absolute_episode
   2  other:other,streaming_service
   1  episode-range
   1  other:country,episode_title
   1  other:alternative_title
   1  other:episode_title,other,proper_count
   1  release_group
----
Total diverging: 47  (known-OK skipped: 1)  of 1009 (vs Python 3.8.0)
Real (excl. 11 env-specific mimetype): 36
Verdicts: FIX 0 · NEUTRAL 12 · KEEP 35