Подключитесь к серверу через SSH и обновите исходный код:
sudo apt update
Установите ffmpeg:
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg
Установите среду Python 3:
sudo apt update
sudo apt install python3 python3-pip
1. Найдите комнату прямой трансляции, которую нужно записать, в приложении Douyin, нажмите «Поделиться», чтобы получить ссылку для обмена.
2. Используйте Python, чтобы запросить ссылку для совместного использования и проанализировать адрес источника прямой трансляции в формате m3u8.
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 для записи, определения статуса трансляции и начала записи:
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)
Несколько комнат прямой трансляции можно записывать одновременно с помощью мультипроцесса:
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()
Поддерживает многопроцессную запись нескольких комнат одновременно:
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. После завершения записи создайте текст электронного письма и вложения.
python
msg = EmailMessage()
msg['Subject'] = «Результаты прямой трансляции TikTok»
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 для отправки электронных писем.
python
s = smtplib.SMTP_SSL('smtp.xxx.com')
s.login('ваш адрес электронной почты','пароль')
s.sendmail('ваш адрес электронной почты', «Адрес электронной почты другой стороны», msg.as_string())
s.quit()
Используя высокую производительность облачного сервера, вы можете легко записывать любую прямую трансляцию Douyin или видеоконтент в формате m3u8. Вы можете рассмотреть возможность отправки его в Qiwei или отправки фрагментов в WeChat.