Mnpn / Azayaka

A small macOS menu bar-residing screen and system audio recorder which uses the ScreenCaptureKit API introduced in Ventura
https://mnpn.dev
378 stars 36 forks source link

Can't record phone messages #9

Open ElhemEnohpi opened 5 months ago

ElhemEnohpi commented 5 months ago

I want to record my iPhone voicemail messages onto my Mac, but the recording is (mostly) silent.

I have my Mac and iPhone set up for "Calls from iPhone", so I can make regular phone calls from the Mac through the FaceTime app, using the iPhone's cellular connection. I have carrier voice messaging, i.e., I have to call the voicemail number and use the number pad (on the Mac screen) to navigate an audio menu to listen to messages. When I use the Mac to call in to voicemail, and use Azayaka 1.2 to record System Audio, the resulting recording is silent, except for the sound of the phone ringing, and the touch-tone sounds of me pressing the number pad. I haven't tried recording a FaceTime Audio call, so I don't know if that works or not.

If I record the FaceTime app instead of System Audio, I get a video recording showing the FaceTime UI and camera, which freezes as soon as I make the phone call, I guess because the UI goes away at that point and is replaced by the floating audio-only pop-up window in the upper right. On the audio of the recording, I just get the sound of the phone ringing, then it's silent, no sound of the number pad tones either.

I guess this is some kind of limitation of the ScreenCaptureKit, or a privacy measure, but I thought I would ask. Does anyone know if there's some other way to do this, that doesn't involve reducing the security settings of the Mac to install a kernel extension? Thanks.

Mnpn commented 5 months ago

Hi! I can reproduce this. I first expected this to be related to the list of filters in Azayaka which excludes some macOS windows, but it doesn't look like it. OBS using ScreenCaptureKit doesn't record it either, so I do indeed assume this is something ScreenCaptureKit does not pick up on, whether by design or some other reason.

Interestingly enough, Voice Memos doesn't let you record during a call, so it seems to be intentional:

image

The only way I managed to make this work was by using something like https://existential.audio/blackhole, it creates an audio device which can take audio output and send it to an audio input. It adds an audio driver which receives audio when selected as your audio output. It is not a kernel extension, but it places its driver in /Library/Audio/Plug-Ins/HAL.

  1. Set your audio output and input to "BlackHole 2ch". Note that you will be unable to hear anything while all audio is being routed to BlackHole.
image
  1. Use e.g. OBS or another microphone recorder to record mic input.

I was unable to record the call audio with a screen recording on my iPhone, nor could I get the audio when screen mirroring to my Mac (even though Music doesn't mind being recorded this way), so this was the only thing that worked for me.