本帖最后由 话痨司机啊 于 2023-2-20 03:15 编辑
说明
用来录制抖音的主播在直播的时候的内容,可以自动监控是否开播,按Ctrl+C终止监控录制并退出程序,如有任何问题请留言,我会及时更新。
软件仅供学习交流使用,禁止商业使用,禁止用来做危害网络安全的事情,因错误使用造成的危害由使用者负责。
下载与使用说明
点此下载 提取码:vzLM
优点
- 程序可以自动循环检测主播是否开播,如开播可以开始自动录制
- 如需录制多名主播,程序可以多开
缺点
- 没有UI界面,因为我是外行,本身学医学的,业余时间自学的编程语言,不会做UI。
- 录制的都是最高画质,没有增加选择画质的选项
- 不支持win10以下的系统
核心代码:
def trantle_decode_mp4(self, data):
logger.info('执行ffmpeg命令,开始录屏转码')
self.status = subprocess.Popen(self._ffmepg_command(
data.nickname, data.streamurl), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while not app.all_thread_stop:
try:
if self.status.poll() is None:
logger.debug(self.status.stdout.readline().decode('utf8').strip())
if self.status.poll() == 0:
logger.debug('ffmpeg执行完成')
app.all_thread_stop = True
else:
os.kill(self.status.pid,signal.CTRL_C_EVENT) #Ctrl+C 如果是0,发送给当前子进程及其所有相关的父进程
app.all_thread_stop = True
except Exception as e:
logger.exception(e)
break
qualities = {'蓝光':'FULL_HD1',"超清":'HD1',"高清":'SD1',"标清":'SD2'}
def start_rec(driver):
m3u8_data = driver.driver.find_element(By.XPATH,value='//*[@id="RENDER_DATA"]')
text = m3u8_data.get_attribute('text')
flv_url = parse.unquote(text)
z = json.loads(flv_url)
room = z['app']['initialState']['roomStore']['roomInfo']['room']
stream_url_flv = room['stream_url']['flv_pull_url']
nickname = room['owner']['nickname']
for k,v in qualities.items():
qual = stream_url_flv.get(v)
if qual:
logger.info(f'检测到{k}画质')
return RoomInfo(nickname,qual)
|