Skip to content

Instantly share code, notes, and snippets.

@Tailchakra
Last active December 8, 2022 22:01
Show Gist options
  • Save Tailchakra/b028fd6a5c4861ab795de5af8239ebe4 to your computer and use it in GitHub Desktop.
Save Tailchakra/b028fd6a5c4861ab795de5af8239ebe4 to your computer and use it in GitHub Desktop.
Musicbrainz Picard Rename Script
$set(_separateByTypeInArtistFolder,1)
$set(_separateAlbum,0)
$set(_useMusicBrainzStyleForVinylTrack,1)
$set(_useSubDiscFolder,1)
$set(_mergeDiscWhenNotUsingSubfolder,0)
$set(_showDiscSubtitle,0)
$set(_nameForTypeCD,CD)
$set(_nameForTypeVinyl,Disc)
$set(_orderTypeForRoot,1)
$set(_orderTypeForArtist,1)
$set(_albumSubFolder,Albums/)
$set(_liveSubFolder,Live/)
$set(_singlesSubFolder,Singles/)
$set(_epSubFolder,EP/)
$set(_broadcastSubFolder,Broadcast/)
$set(_soundtracksSubFolder,Soundtracks/)
$set(_otherSubFolder,Others/)
$set(_compilationsSubFolder,Compilations/)
$set(_variousArtistsFolder,Various Artists/)
$if($in(%releasetype%,album),
$set(_isAlbum,1)
)
$if($in(%releasetype%,single),
$set(_isSingle,1)
)
$if($in(%releasetype%,ep),
$set(_isEP,1)
)
$if($in(%releasetype%,broadcast),
$set(_isBroadcast,1)
)
$if($in(%releasetype%,other),
$set(_isOther,1)
)
$if($in(%releasetype%,compilation),
$set(_isArtistCompil,1)
)
$if($in(%releasetype%,live),
$set(_isLive,1)
)
$if($in(%releasetype%,soundtrack),
$set(_isSoundtrack,1)
)
$if($eq(%artist%,Various Artists),
$set(_isVarious,1)
)
$if($eq(%compilation%,1),
$set(_isGlobalCompil,1)
)
$set(artist,$if($eq($left(%artist%,4), The),%artistsort%,%artist%))
$set(album,$replace(%album%,...,…))
$set(title,$replace(%title%,...,…))
$set(discsubtitle,$replace(%discsubtitle%,...,…))
$set(album,$replace(%album%, [Nn]o.\\s*\(\\d\), №\\1))
$set(title,$rreplace(%title%, [Nn]o.\\s*\(\\d\), №\\1))
$set(discsubtitle,$replace(%discsubtitle%, [Nn]o.\\s*\(\\d\), №\\1))
$set(album,$rreplace(%album%,\(\\d\)",\\1″))
$set(discsubtitle,$rreplace(%discsubtitle%,\(\\d\)",\\1″))
$set(artist,$rreplace(%artist%,"\(.*?\)",“\\1”))
$set(artist,$rreplace(%artist%,"\(.*?\)",“\\1”))
$set(artistsort,$rreplace(%artistsort%,"\(.*?\)",“\\1”))
$set(artistsort,$rreplace(%artistsort%,"\(.*?\)",“\\1”))
$set(album,$rreplace(%album%,"\(.*?\)",“\\1”))
$set(title,$rreplace(%title%,"\(.*?\)",“\\1”))
$set(discsubtitle,$rreplace(%discsubtitle%,"\(.*?\)",“\\1”))
$set(_titleForFilename,%title%)
$set(_albumForFilename,%album%)
$set(_discsubtitleForFilename,%discsubtitle%)
$set(_artistForFilename,%artist%)
$set(_artistForFilename,%artist%)
$set(_artistsortForFilename,%artistsort%)
$set(_artistsortForFilename,%artistsort%)
$set(_titleForFilename,$replace(%_titleForFilename%,#,♯))
$set(_albumForFilename,$replace(%_albumForFilename%,#,♯))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,#,♯))
$set(_titleForFilename,$replace(%_titleForFilename%,:,∶))
$set(_albumForFilename,$replace(%_albumForFilename%,:,∶))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,:,∶))
$set(_artistForFilename,$replace(%_artistForFilename%,:,∶))
$set(_artistForFilename,$replace(%_artistForFilename%,:,∶))
$set(_artistsortForFilename,$replace(%_artistsortForFilename%,:,∶))
$set(_artistsortForFilename,$replace(%_artistsortForFilename%,:,∶))
$set(_titleForFilename,$replace(%_titleForFilename%,_, ))
$set(_albumForFilename,$replace(%_albumForFilename%,_, ))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,_, ))
$set(_artistForFilename,$replace(%_artistForFilename%,_, ))
$set(_artistForFilename,$replace(%_artistForFilename%,_, ))
$set(_artistsortForFilename,$replace(%_artistsortForFilename%,_, ))
$set(_artistsortForFilename,$replace(%_artistsortForFilename%,_, ))
$set(_titleForFilename,$replace(%_titleForFilename%,?,⁇))
$set(_albumForFilename,$replace(%_albumForFilename%,?,⁇))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,?,⁇))
$set(_artistForFilename,$replace(%_artistForFilename%,?,⁇))
$set(_artistsortForFilename,$replace(%_artistsortForFilename%,?,⁇))
$set(_titleForFilename,$replace(%_titleForFilename%,|,│))
$set(_albumForFilename,$replace(%_albumForFilename%,|,│))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,|,│))
$set(_titleForFilename,$replace(%_titleForFilename%,>,>))
$set(_albumForFilename,$replace(%_albumForFilename%,>,>))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,>,>))
$set(_titleForFilename,$replace(%_titleForFilename%,<,<))
$set(_albumForFilename,$replace(%_albumForFilename%,<,<))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,<,<))
$set(_titleForFilename,$replace(%_titleForFilename%,*,✱))
$set(_albumForFilename,$replace(%_albumForFilename%,*,✱))
$set(_discsubtitleForFilename,$replace(%_discsubtitleForFilename%,*,✱))
$set(_artistForFilename,$replace(%_artistForFilename%,*,✱))
$set(_artistForFilename,$replace(%_artistForFilename%,*,✱))
$set(_artistsortForFilename,$replace(%_artistsortForFilename%,*,✱))
$set(_artistsortForFilename,$replace(%_artistsortForFilename%,*,✱))
$if(%_isVarious%,%_variousArtistsFolder%,
$if($eq(%_orderTypeForRoot%,2),
$if($eq(%_orderTypeForArtist%,1),
$upper($firstalphachar($if2(%_artistForFilename%, %_artistForFilename%),#)),
$if($eq(%_orderTypeForArtist%,2),
$upper($firstalphachar($if2(%_artistsortForFilename%, %_artistsortForFilename%),#))
))
)/
$if($eq(%_orderTypeForArtist%,1),
$if2(%_artistForFilename%)
)/
$if($eq(%_orderTypeForArtist%,2),
$if2(%_artistForFilename%)
)/
$if($eq(%_separateByTypeInArtistFolder%,1),
$if($or(%_isArtistCompil%,%_isGlobalCompil%),%_compilationsSubFolder%,
$if($eq(%_isSoundtrack%,1),%_soundtracksSubFolder%,
$if($eq(%_isLive%,1),%_liveSubFolder%,
$if($eq(%_isAlbum%,1),
$if($eq(%_separateAlbum%,1),%_albumSubFolder%)
)
$if($eq(%_isSingle%,1),%_singlesSubFolder%)
$if($eq(%_isEP%,1),%_epSubFolder%)
$if($eq(%_isBroadcast%,1),%_broadcastSubFolder%)
$if($eq(%_isOther%,1),%_otherSubFolder%)
)
)
)
)
)
%_albumForFilename%
$if($gt(%totaldiscs%,1),$noop(
)$if($lt(%totaldiscs%,10),$set(_discnumber,%discnumber%),$set(_discnumber,$num(%discnumber%,2)))$noop(
)$if($in(%media%,Vinyl),$noop(
)$set(_nameForDiscFolder,@OSLASH@@OBRACKET@%_nameForTypeVinyl%%_discnumber%@CBRACKET@),$noop(
)$set(_nameForDiscFolder,@OSLASH@@OBRACKET@%_nameForTypeCD%%_discnumber%@CBRACKET@))$noop(
)$if($and(%_discsubtitleForFilename%,$eq(%_showDiscSubtitle%,1)),$set(_nameForDiscFolder,%_nameForDiscFolder%~%_discsubtitleForFilename%))$noop(
)$if($eq(%_useSubDiscFolder%,1),$noop(
)$set(_nameForDiscFolder,$replace(%_nameForDiscFolder%,@OSLASH@@OBRACKET@,/))$noop(
)$set(_nameForDiscFolder,$replace(%_nameForDiscFolder%,@CBRACKET@,)),$noop(
)$if($eq(%_mergeDiscWhenNotUsingSubfolder%,1),$noop(
)$unset(_nameForDiscFolder),$noop(
)$set(_nameForDiscFolder,$replace(%_nameForDiscFolder%,@OSLASH@@OBRACKET@,[))$noop(
)$set(_nameForDiscFolder,$replace(%_nameForDiscFolder%,@CBRACKET@,]))$noop(
))$noop(
))$noop(
)$if(%_nameForDiscFolder%, %_nameForDiscFolder%)
)/
$if($in(%media%,Vinyl),$noop(
)$if($eq(%_useMusicBrainzStyleForVinylTrack%,1),$noop(
)$if(%_musicbrainz_tracknumber%,%_musicbrainz_tracknumber%. )$noop(
)),$noop(
)$if(%tracknumber%,$if($gt(%totaldiscs%,1),$if($and($eq(%_useSubDiscFolder%,0),$eq(%_mergeDiscWhenNotUsingSubfolder%,1)),%discnumber%))$num(%tracknumber%,2). )
)
%_titleForFilename%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment