Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ISRCs from Digital Files #137

Open
wants to merge 39 commits into
base: master
Choose a base branch
from

Conversation

SheamusPatt
Copy link

@SheamusPatt SheamusPatt commented Oct 3, 2021

I'd previously logged an issue (enhancement request) to add support for audio files, (#135). I've developed this script to address that need. It would have greatly complicated the isrcsubmit command line to make it serve both purposes, so instead I created a new script, isrcDigitalSubmit. It relies heavily on the original isrcsubmit for many functions, though, so it makes sense to include both scripts in the same package. The shared code has been moved into an internal module, isrcshared.py .
I have updated the test framework as needed so it still runs, but have not created any new tests. The script has been tested using my library of several dozen purchased digital downloads, and I also did some rudimentary testing on Windows 10. It's there I discovered that isrcsubmit requires 32-bit Python (part of the reason I created ishared.py as it avoids that dependency for isrcDigitalSubmit).
I've also updated the packaging script so that it creates a working pair of release archives (though I only tested the Windows one as I don't have access to a MAC). Note that I dropped the mediatools download from the packaging as the host site seems to have gone.

This pull request is nearly the same as #136 (now closed) but fixes a broken import while refactoring, which causes the final "submit" to fail.
It also adds support for the Mora store which apparently uses its own GUID as a tag for ISRC. Confirmed by one of its users.

Jim Patterson and others added 30 commits August 16, 2021 17:35
Based on CD version, but instead of CDs extracts ISRCs from digital media
files (optionally in a .zip file) using mutagen.
Instead of a DiscID, it locates potential matching released based on
embedded artist and title tags.
Track class has been repurposed to manage the
tag differences between the different
audio file formats.
from isrcsubmit instead of being duplicated.
…n prefix on all artists, and explicitly for a "featured" artist.

The explicit featured artist check relies on knowing the tag, currently just " feat. ", but that is language-specific and won't match what various producers will do.
Checking for a common prefix avoids those issues but assumes there is at least one track with no featured artist.
Describe a new Digital Media script, isrcDigitalSubmit
More prose
Use 'duet with' as connector. Normalize strings (lower case, stripped)
fails, trap and report them.
Adjust logic to increase the likelihood of finding a match in
MusicBrainz.
Added libraries it needs - mutagen and unidecode, both on github
Removed mediatools. The site hosting this has gone away. It's apparently not actually required, and has just been included as a utility for Windows users.
…by just importing from isrcsubmit.py but it has a binary dependency on the discid shared library so this causes problems, specifically on 64-bit windows.
Removed isrcDigitalSubmit-config.5.rst and modified script to use isrcsubmit config. They're the same so no reason to complicate things.
Updated makefile and test script to maatch development changes.
Align version
All scripts need to align on version, so property moved to isrcshared and imported from there.
The Japanese download site [mora](https://mora.jp/) puts an ISRC in tag '93a74bea-ce97-5571-a56a-c5084dba9873', according to a user.
Silly syntax error
@SheamusPatt SheamusPatt changed the title Sheamus patt mora 1 Add support for ISRCs from Digital Files Oct 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant