stdout не работает в приложении с графическим интерфейсом, вам нужно установить правильные флаги через win32api, чтобы скрыть окна подпроцесса. Использование call()
не будет работать, так как не поддерживает хелпер STARTUPINFO , вместо этого вы можете использовать Popen()
Нечто подобное должно сработать:
from subprocess import Popen, STARTUPINFO, STARTF_USESHOWWINDOW, SW_HIDE, PIPE
si = STARTUPINFO()
si.dwFlags |= STARTF_USESHOWWINDOW
si.wShowWindow = SW_HIDE
proc = Popen(['youtube-dl', '-f', 'bestaudio', MYURL], stdin=PIPE,
stdout=stdout_file,
stderr=PIPE,
shell=False,
startupinfo=si)
ret_code = process.wait()
stdout_file.flush()