Valid DVD Drive could not be found -70012

Long story made short, I use my SuperDrive in an external USB enclosure.

When opening DVD, it will present an error stating: Valid DVD Drive could not be found [70012]

A little web search turns up a thread with a great solution on

Step one is making a backup copy of DVDPlayback.framework with this command in Terminal.

sudo cp /System/Library/Frameworks/DVDPlayback.framework/Versions/A/DVDPlayback /System/Library/Frameworks/DVDPlayback.framework/Versions/A/DVDPlayback.bak

Step two is to patch the DVDPlayback.framework file with this command in Terminal.

sudo perl -pi -e 's|\x49\x6E\x74\x65\x72\x6E\x61\x6C|\x45\x78\x74\x65\x72\x6E\x61\x6C|g' /System/Library/Frameworks/DVDPlayback.framework/Versions/A/DVDPlayback

The thread on didn’t explain what the above command does exactly, so being the curious type, I wanted to find out what operations the command performs. The simple explanation is that the command uses Perl to add a line of text to the DVDPlayback.framework file.

The more detailed explanation of the flags used with the perl command are below, found on StackOverflow.

  • -p: Places a printing loop around your command so that it acts on each
    line of standard input. Used mostly so Perl can beat the
    pants off awk in terms of power AND simplicity.
  • -i: Modifies your input file in-place (making a backup of the
    original). Handy to modify files without the {copy,
    delete-original, rename} process.
  • -e: Allows you to provide the program as an argument rather
    than in a file. You don’t want to have to create a script
    file for every little Perl one-liner.

If for some reason the DVDPlayback.framework file needs to be restored from the backup that was created in step one, just reverse the command. The restoration command is below for easy copypasta into Terminal.

sudo cp /System/Library/Frameworks/DVDPlayback.framework/Versions/A/DVDPlayback.bak /System/Library/Frameworks/DVDPlayback.framework/Versions/A/DVDPlayback

This issue occurs and is resolved for myself on macOS High Sierra.