Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Record system audio without a kernel extension

Is there a way to record system audio without using a kernel extension in OS X. By system audio, I mean what is being played through the speakers.

In looking around, I’ve found people advising doing something similar to Soundflower, which uses a kernel extension to create a fake audio device. But, I really don’t want to do that and I don’t believe I have to. Some screen recording apps seem to record system audio without a kernel extension (e.g. Screenium), and they are distributed via the Mac App Store making me believe there is a way to do it without violating App Store rules.

I've looked through the Core Audio and AVFoundation documentation, but I can't seem to find a way to get to the system audio.

Thanks in advance.

like image 972
c-had Avatar asked Aug 05 '14 18:08

c-had


1 Answers

i recommend the BlackHole virtual audio driver.

  1. create a multi-output (virtual) device in the Audio MIDI Setup app (the built-in output first, then add the BlackHole output)
  2. select the multi-output device as the audio output from the system and/or any app
  3. record or monitor the BlackHole input which is the rerouted audio output from the system and/or any app

the BlackHole virtual audio driver gets installed at:

/Library/Audio/Plug-Ins/HAL/BlackHole.driver

https://existential.audio/blackhole/

https://existential.audio/blackhole/support/

https://github.com/ExistentialAudio/BlackHole

i assume Apple is not providing any convenient way (an official API) to record/monitor the audio output by design in order to prevent users from recording any copyrighted music or audio easily. also for the privacy reasons.

looks like Screenium uses a Soundflower-based virtual audio driver to reroute the audio output for recording.

https://www.syniumsoftware.com/support-article/synium-audio-driver-en

like image 97
H. Katsura Avatar answered Oct 21 '22 21:10

H. Katsura