配置云服务器环境
通过SSH连接服务器,更新源:
代码语言:javascript复制sudo apt update
安装ffmpeg:
代码语言:javascript复制sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg
安装Python 3环境:
代码语言:javascript复制sudo apt update
sudo apt install python3 python3-pip
获取抖音直播真实地址
1. 在抖音App中浏览要录制的直播间,点击分享获得分享链接
2. 使用Python请求分享链接,解析出m3u8格式的直播源地址
代码语言:javascript复制python
import requests
dy_share_url = 'https://v.douyin.com/xxx'
res = requests.get(dy_share_url)
m3u8_url = res.text.split('src":"')[1].split('"}')[0]
设定录制脚本
使用ffmpeg命令行录制,检测开播状态,开启录制:
代码语言:javascript复制python
import os
import time
while True:
if requests.get(m3u8_url).ok:
os.system(f'ffmpeg -i {m3u8_url} -c copy output.mp4')
else:
time.sleep(300)
可以通过多进程同时录制多个直播间:
代码语言:javascript复制python
from multiprocessing import Process
# 定义录制函数
def record_room(room_url, output):
stream = ffmpeg.input(room_url)
stream.output(output).run()
if __name__ == '__main__':
# 多个直播间
rooms = [room1, room2, ...]
# 启动多进程录制
processes = []
for i, room in enumerate(rooms):
process = Process(target=record_room, args=(room, f'output{i}.mp4'))
process.start()
processes.append(process)
# 等待所有进程结束
for process in processes:
process.join()
支持多进程同时录制多个房间:
代码语言:javascript复制python
rooms = ['room1.m3u8', 'room2.m3u8']
for i, room in enumerate(rooms):
p = Process(target=record ,args=(room, f'output{i}.mp4'))
p.start()
发送通知邮件
1. 录制完成后,构造邮件文本和附件
代码语言:javascript复制python
msg = EmailMessage()
msg['Subject'] = '抖音直播录制结果'
with open('output.mp4', 'rb') as f:
video = MIMEApplication(f.read())
video.add_header('Content-Disposition', 'attachment', filename='output.mp4')
msg.attach(video)
msg.set_content('本次录制结果...')
2. 使用smtplib模块发送邮件
代码语言:javascript复制python
s = smtplib.SMTP_SSL('smtp.xxx.com')
s.login('你的邮箱','密码')
s.sendmail('你的邮箱', '对方邮箱', msg.as_string())
s.quit()
结束语:
利用云服务器的高性能,可以方便录制任意抖音直播或m3u8视频内容。可以考虑在推送到企微或者切片发送到微信。