Files
twitch-highlight-detector/clipper/video.py
2022-08-14 23:03:22 +03:00

44 lines
1.2 KiB
Python

import logging
import subprocess
logger = logging.getLogger(__name__)
class TwitchVideoRecorder:
is_running = False
refresh_timeout = 15
streamlink_process = None
def run(self, streamer_name, output_file, quality="720p"):
self.is_running = True
self._record_stream(streamer_name, output_file, quality)
def stop(self):
try:
if self.streamlink_process:
self.streamlink_process.terminate()
self.streamlink_process = None
logger.error("Video stopped")
except BaseException as e:
logger.error("Unable to stop video")
logger.error(e)
self.is_running = False
def _record_stream(self, streamer_name, output_file, quality):
try:
self.streamlink_process = subprocess.Popen([
"streamlink",
"--twitch-disable-ads",
"twitch.tv/" + streamer_name,
quality,
"-o",
output_file
])
except BaseException as e:
logger.error("Unable to run streamlink")
logger.error(e)
self.is_running = False