ISRC submit from CDs

I’ve never been able to get mediatools or ISRCsubmit to work. I tried for days to learn python to the point where I just don’t get it. I’m damn near 50 and I’m just not going to learn this kinda thing. I want to be able to just stick a CD in and have the ISRCs submitted without learning python. Is there any way we could just create an add-on to Picard to handle this like they do accoustIDs? Why is it so hard to extract the metadata from a CD that has one and submit it via the tools in place. Or why isn’t there just an installer that will install everything with one button click (it’s 2021) that will install all the previous things for me.

4 Likes

If Windows and your CD drive is D:\.

mediatools.exe (Windows)

mediatools.exe drive d cdtext isrc upc

Then copy and use mb. MASS ISRC userscript with @kepstin’s //magicisrc.kepstin.ca.

isrcsubmit.exe (Windows)

isrcsubmit.exe" -u tigerman325 d:

@JonnyJD’s python isrcsubmit

Are you in Linux, Mac or Windows?

  • In most distributions of Linux, including stable Debian, you can just install isrcsubmit with sudo apt install isrcsubmit (no need to understand Python, I don’t).
  • In Mac, I don’t know.
  • In Windows, I remember it was more difficult to install, indeed.

About ISRC with Picard:

It would mean adding a ripping mode, which is not a small thing.

7 Likes

I figured “not be a small thing” was likely the problem. Bummer. I’ve tried the python installs and just rarely get anything to work that way. I’d get part of the way there but then got errors. Glad to see a ticket opened, at least. I use WIndows 10 and python is just confusing to me. Too many versions, not sure what to do with it or how it works. I’ll try to install with the newest versions again and see if the bugs have been worked out. Last tried about a 6 months to a year ago.

1 Like

A word of caution for Mac users: ISRCsubmit does not work on MacOS Catalina (10.15) or higher.

3 Likes

libdiscid always crashes when I try to install it.

Ok. Well I installed python-discid instead and it seems to have installed, but when I run isrcsubmit it says it can’t find discid.dll even though it’s in the same folder.

It seems you are trying to build something.

If I remember, on Windows:

  • Download isrcsubmit-2.1.0-win32.zip (or earlier) from download page
  • Unzip somewhere and run isrcsubmit.bat from the MS-DOS command line

Have you checked the knwon issues (solved and not solved)?

Maybe you have installed Pyhton 64 bit?
Even if you have Windows 64 bit, isrcsubmit currently only works with Python 32 bit.

If it’s not this problem, then it may be that other problem, which already has a fix but still not deployed (open).

If you are really blocked, you can still use mediatools.exe from this same zip, then copy text, and paste in magicisrc with MASS ISRC.

1 Like

This thread is a great example of the reason I also don’t bother with ISRCs from my CDs. I use Windows PCs and it is just too much of a faff. Any reason this can’t be added to Picard? Just like a Submit TOC works from Picard? Couldn’t we get a little option on the menu to Submit ISRC so we can do this without having to master multiple languages and copy pasting data around?

3 Likes

Ahh. I’m using 64 bit. Maybe that’s the issue. Il’ll try one last time.

1 Like

If you still have the same error, try to edit isrcsubmit.py as shown by omgitsraven in https://github.com/JonnyJD/musicbrainz-isrcsubmit/pull/125/files

Sorry BTW I didn’t remember there was a solution with keeping 64 bit Python!
Please replace disid.dll as explained in https://github.com/JonnyJD/musicbrainz-isrcsubmit/issues/73#issuecomment-524569385 and maybe do the change in my previous paragraph.
Those 2 things should make it work with Python 64 bit.

@JonnyJD:
I will propose a PR next to omgitsraven’s PR to maybe fix that.
I still have to test if it works with both 32 bit and 64 bit (I have Windows XP and 10, 32 bit and 64 bit, somewhere).

@HibiscusKazeneko I use macOS Catalina 10.15.7 and got it to work. IIRC, starting with 10.15, Apple updated the built-in version of Python to 3.7, which leads to an issue parsing the output of some process (technical answer: it returns a byte-string while a string is expected). Replacing

proc = Popen(["drutil", "status", "-drive", option_device], stdout=PIPE)

with

proc = Popen(["drutil", "status", "-drive", option_device], stdout=PIPE, text=True)

on line 440 of isrcsubmit.py may fix this, I think, although other errors may occur later on still (can’t remember).

@tigerman325 To add on to @jesus2099’s answer, that error tells me that libdiscid (the actual library) is not installed (or installed in a weird place). AFAIK you shouldn’t need to pip install anything if you’re using the pre-built ZIPs. I don’t use Windows though, so don’t take my word for it.

5 Likes

I thought I had to install those because they were dependencies. Why even tell you this if they don’t need to go install it. This is the kinda techie stuff that drives me nuts. If I don’t have to do something, don’t tell me I do. Argh.

I’m trying to install libdiscid in when I get that answer. I don’t know how to install anything other than pip install.

Yes, the install page may be a little confusing in its current form.
You should read it as:

For Windows, you need to install Python and then to download the zip file.

For Linux, just install the musicbrainz-isrcsubmit (use sudo apt install musicbrainz-isrcsubmit for Debian distribution).
It takes care of all dependencies.
If not found in your distribution, you will have to clone the git repository (or download it as zip) and do the more complex stuff explained in install page.

(For Mac I don’t know)

I have the same problem again now that my laptop has been reset and I reinstalled Python 3 (64 bit apparently):

C:\Users\bob\Documents\PRG\isrcsubmit-2.1.0-win32>isrcsubmit.bat
Traceback (most recent call last):
  File "C:\Users\bob\Documents\PRG\isrcsubmit-2.1.0-win32\isrcsubmit.py", line 47, in <module>
    import discid
  File "C:\Users\bob\Documents\PRG\isrcsubmit-2.1.0-win32\discid\__init__.py", line 30, in <module>
    from discid.disc import read, put, Disc, DiscError, TOCError
  File "C:\Users\bob\Documents\PRG\isrcsubmit-2.1.0-win32\discid\disc.py", line 24, in <module>
    from discid.libdiscid import _LIB, FEATURES
  File "C:\Users\bob\Documents\PRG\isrcsubmit-2.1.0-win32\discid\libdiscid.py", line 108, in <module>
    _LIB = _open_library(_LIB_NAME)
  File "C:\Users\bob\Documents\PRG\isrcsubmit-2.1.0-win32\discid\libdiscid.py", line 99, in _open_library
    return ctypes.cdll.LoadLibrary(lib_name)
  File "C:\Users\bob\AppData\Local\Programs\Python\Python310\lib\ctypes\__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\bob\AppData\Local\Programs\Python\Python310\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'discid.dll' (or one of its dependencies). Try using the full path with constructor syntax.

:-/

Not really, When Picard submits the disc ID, it could also submit the ISRCs.

3 Likes

How would Picard be able to submit any ISRCs without actually obtaining them first by either reading and decoding the Q channel of a CD, or parsing some trusted 3rd party source such as EAC CUE file?

If Picard can calculate the disc ID by reading the CD, then why can’t Picard get the ISRCs off the CD?

1 Like

I guess there’s rather a big technical difference if you only need to read the TOC (table of contents) or decode a specific subchannel. And some drives can’t read the latter at all.

1 Like

Agreed, my point was that while a user is submitting a disc ID, it makes sense to submit ISRCs as part of a single set of actions. Obviously, they may not be available, so could be skipped.

1 Like