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

Added support for submitting ISRCs from audio files #136

Closed
wants to merge 39 commits into from

Conversation

SheamusPatt
Copy link

@SheamusPatt SheamusPatt commented Oct 2, 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.

One last minute change - I broke an import while refactoring, and the final "submit" fails. Simple fix, line 24 of isrcshared.py needs to be
import getpass
or reject it and I'll resubmit the Pull request. Seems I can't pull it back.

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.
@SheamusPatt
Copy link
Author

It's all included in my more recent Pull request, which also fixes a serious issue with password prompts,

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