This commit is contained in:
zuckerberg 2021-05-29 05:30:40 -04:00
parent f398cc448b
commit 527889317b
2 changed files with 8 additions and 2 deletions

View File

@ -11,6 +11,7 @@ import subprocess
import os
import pip
import signal
from logger import logger
def updateYoutubeDL():
pip.main(['install', '--target=' + dirpath, '--upgrade', 'youtube_dl'])
@ -38,11 +39,12 @@ def executeYoutubeDL(url, cb):
#"--external-downloader-args", "-re",
url
]
popen = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE, preexec_fn=os.setsid)
popen = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, preexec_fn=os.setsid)
# monitor the stdout and send to callback, if result from callback function is true,
# then kill the download process
BUFFER_SIZE = 8096
logger.add(popen.stderr, "youtube-dl.log")
for chunk in iter(lambda: popen.stdout.read(BUFFER_SIZE), b''):
if cb(chunk):
os.killpg(os.getpgid(popen.pid), signal.SIGTERM)

View File

@ -1,14 +1,18 @@
import downloader
import ffmpeg
import sys
from logger import logger
def run():
process = ( ffmpeg
.input('pipe:', re=None)
.output("icecast://source:hackme@localhost:8000/stream.mp3", format='mp3', content_type="audio/mpeg")
.run_async(pipe_stdin=True)
.run_async(pipe_stdin=True, pipe_stdout=True, pipe_stderr=True)
)
logger.add(process.stdout, "ffmpeg.out.log")
logger.add(process.stderr, "ffmpeg.err.log")
def cb(chunk):
process.stdin.write(chunk)
return False