this post was submitted on 13 Feb 2024
19 points (91.3% liked)
F-Droid
8069 readers
37 users here now
F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device.
Matrix space | forum | IRC
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Ayyyyy, I just closed my pc after tagging some songs. I've started a big project of replacing my music library with .flac files which I also convert them to .opus files in a separate folder and I try to tag them all prolerly. I've even set up a workflow with instructions on how to do it (tell me if you want to share that).
As for the music players, I too use VLC which really has limited capabilities raleted to tags usage, so I found Phonograph Plus which even lets you edit tags and can sort using many different tags (even supports lyrics).
Till I replace all of my music library, I might keep using VLC, but after that I might switch to phonograph plus.
@BlastboomStrice @SolarPunker
Would definitely like info on that workflow.
[Edit26-2-2023: Ive improved a lot my workflow since] Update
First, I'll present the tools I use:
I use the site https://free-mp3-download.net/ to download the songs. It fetches flac (and mp3) files from deezer. (I used to use Seal on android or ytDownloader on pc (both open source), but I decided to move away from youtube.
I use One Tagger to automatically tag my songs (open source). It can fetch metadata from various platforms, like musicbrainz, deeer, spotify, musixmatch, bandcamp, discogs etc.
I use Mp3tag to manually (and batch) edit tags of my downloaded songs (closed source freeware, until recently I thought it was open source.. I might replace it with Kid3 if I ever get to know how to use it). Mp3tag has "actions" which help you do batch edit of metadata, like format the filename of a song using the artist and title tags (and with ctrl+a you can select all songs to apply that action).
I use fre:ac to convert my files from .flac to .opus (open source). It can do many more, it can also rip CDs etc.
Lastly, I use notepad++ for keeping notes and a list of my song.
Noteable mentions: Simplest file renamer to batch rename files or get a list of the filenames in a folder (open source) and Libre Office to use the Office calc funtions (open source).
Now, the workflow:
1)Download all the songs from free-mp3-downloader.net. I have made a list of my songs on notepad++ which I have edited it to remove weird characters (like
" . ,
) or text that will confuse the site (like[official video]
) and I just copy paste each song to the search bar of the site. I tend to use 3 different pages of the site, as the download process starts after a few seconds and if I go back to search another song before the download has started, it won't start downloading..2)Auto-tag all tags with deezer/one tagger (I start with deezer to achieve a nearly 100% match, since the downloaded songs come from deezer, so they have deezer metadata.
3)Copy %wwwaudiofile% to %wwwaudiosource% with mp3tag action
3)Auto-tag artist, ISRC, trackId, releaseId and Url tags with spotify/one tagger
4)Copy %wwwaudiofile% to %www% with mp3tag action
5)Auto-tag trackId, releaseId, Url, ISRC and genre tags with musicbrainz/one tagger
6)Auto-tag genre, style/subgenre, trackId and releaseId tags with bandcamp/one tagger
7)Auto-tag unsyncedLyrics tag with musixmatch/one tagger
8)Add audio features with spotify/one tagger
9)Add 20-100 to %rating% tag, 1-255 to %ratingWMP% tag, [1-5stars] and [f@v] text to %comment% tag with mp3tag actions (the [1-5stars] and the [f@v] from favourite texts in comment act as "custom" tags which later I will copy in the filename.
1/2/3/4/5 star ratings for each tag: 1/64/128/192/255 for %ratingWMP% tag, 20/40/60/80/100 for %rating% tag
(better download each star category in seperate folder, apply the approriate rating and then move them all together in a single folder)
Note: because it may happen that a song may not exist in the free-mp3-downloader.net site, I might add a [yt] tag at the end of the comment to declare that the song is from Youtube (and download it from Youtube using tools I described in the beggining).
10)Auto rename all files with template (mp3tag action):
%artist% - %title% [%year%] -- %comment%
11)I set only the first letter of each genre to capital letter and the rest to small using mp3tag action.
12)Convert files to .opus using fre:ac and save them in a separate folder. I leave everything deafult in the opus encoder, apart from the bitrate which I set it to 144kbps. Because by default fre:ac will create seperate folders for each file, to prevent this, go to settings/output files/output filenames/filename pattern and type
<filename>
in the field. There may be an issue with deleting/editing the .opus files on windows, this can be somewhat fixed by following one of the two soltions provided in the comments here on reddit (web archive link).14)Copy tags from the folder with .flac files and paste them to the tags of the folder with .opus files using mp3tag (the order of the songs in list must be identical for this to work).
15)Struggle (maybe manually edit tags that are missing, like genre or lyrics (copy paste the lyrics from a site to the lyrics tag by opening the extended tags in mp3tag and pasting them in the lyrics tag)
16)ENJOY
This was the workflow.
I have omited the structure of the mp3tag actions and the profiles I use in one tagger for each operation, so I will explain them too:
force Shazam
and after that I just manually move the failed files to the next folder):1. Deezer
profile:I choose the Deezer platform
I set the input path to
...\Downloads\1T\0 Raw
(1T from One Tagger/1Tagger)I select all tags
I set the album art resolution to 1600 (max)
I set it to identify tracks without tags with shazam
I set it to move succefully tagged files to
...\Downloads\1T\1 Deezer
I set the truck number leading zeroes to 2
I put the
;
(with spaces before and after) as a separators in Vorbis field.2. Spotify
profile:I choose the Spotify platform
I set the input path to
...\Downloads\1T\1 Deezer
I select artist, ISRC, trackId, releaseId and Url tags
I disable
overwrite tags
and in the field I only select the tags from aboveI set it to identify tracks without tags with shazam
I set it to move succefully tagged files to
...\Downloads\1T\2 Spotify
I set the truck number leading zeroes to 2
I put the
;
(with spaces before and after) as a separators in Vorbis field.3. Musicbrainz
profile:I choose the Musicbrainz platform
I set the input path to
...\Downloads\1T\2 Spotify
I select trackId, releaseId, Url, ISRC and genre tags
I disable
overwrite tags
and in the field I only select the tags from aboveI set it to identify tracks without tags with shazam
I set it to move succefully tagged files to
...\Downloads\1T\3 Musicbrainz
I set the truck number leading zeroes to 2
I put the
;
(with spaces before and after) as a separators in Vorbis field.4. Bandcamp
profile:I choose the Bandcamp platform
I set the input path to
...\Downloads\1T\3 Musicbrainz
I select genre, style/subgenre, trackId and releaseId tags
I disable
overwrite tags
and in the field I only select the tags from aboveI set it to identify tracks without tags with shazam
I set it to move succefully tagged files to
...\Downloads\1T\4 Bandcamp
I set the truck number leading zeroes to 2
I set it to merge genre and style/subgenre in the genre tag
I put the
;
(with spaces before and after) as a separators in Vorbis field.5. Musixmatch
profile:I choose the Musixmatch platform
I set the input path to
...\Downloads\1T\4 Bandcamp
I select unsyncedLyrics tag
I disable
overwrite tags
and in the field I only select the tags from aboveI set it to identify tracks without tags with shazam
I set it to move succefully tagged files to
...\Downloads\1T\5 Musixmatch
I set the truck number leading zeroes to 2
I put the
;
(with spaces before and after) as a separators in Vorbis field.1. wwwaudio to wwwaudiosource:
I create an action type of format, set the field to
WWWAUDIOSOURCE
and the format string to%wwwaudiofile%
2. wwwaudio to www:
I create an action type of format, set the field to
WWW
and the format string to%wwwaudiofile%
3a. Comment and 5 star rating format (similar for any other rating):
I create 3 actions type of format:
1st: I set the field to
RATING
and the format string to100
2nd: I set the field to
RATING WMP
and the format string to255
3rd: I set the field to
COMMENT
and the format string to$char(91)$div(%rating%,20)star$ifgreater(%rating%,20,s,)$char(93)
$char(91)
and$char(93)
are the[
]
characters,$div(x,y)
does x/y and$ifgreater(%rating%,20,s,)
adds ans
at the end ofstar
string if the stars are greater than 13b. Comment with 5 star rating and [f@v] format (similar for any other rating):
I create 3 actions type of format:
1st: I set the field to
RATING
and the format string to100
2nd: I set the field to
RATING WMP
and the format string to255
3rd: I set the field to
COMMENT
and the format string to$char(91)$div(%rating%,20)star$ifgreater(%rating%,20,s,)$char(93) $char(91)f$char(64)v$char(93)
$char(64)
is the @ character to create the [f@v] text4. Filname renaming artist - title [year] -- comment:
I create an action type of format, set the field to
_FILENAME
and the format string to%artist% - %title% $char(91)$left(%year%,4)$char(93) -- %comment%
This creates filenames like
All Good Things - Beginning Of The End [2017] -- [5stars] [f@v]
5. Capitalise Genre:
I create a case conversion action, I set the field to
GENRE
, case conversion toMixed Case
and in the field ofWords begin from/after any of:
I paste this (3 characters the last one is a space):;/&
You can also make your own actions, like an action to only add the [f@v] text at the end of the comment tag (create an action type of format, set the field to
COMMENT
and the format string to%comment% $char(91)f$char(64)v$char(93)
).Happy tagging!
@BlastboomStrice
Very thorough, thank you!
(and yes, been creeping for a while on the platform, but have decided to engage more now that I'm convinced this community aligns with my values. I chose you!)