Git Product home page Git Product logo

ihmily / douyinliverecorder Goto Github PK

View Code? Open in Web Editor NEW
3.0K 17.0 329.0 17.88 MB

可循环值守和多人录制的直播录制软件,支持抖音、TikTok、快手、虎牙、斗鱼、B站、小红书、pandatv、afreecatv、flextv、popkontv、twitcasting、winktv、百度、微博、酷狗等平台直播录制,抓取多平台直播源地址

License: MIT License

Python 72.40% PHP 5.36% JavaScript 19.14% HTML 2.93% Dockerfile 0.18%
douyin-live video-downloader douyin-api douyulive live-recorder python tiktok-api tiktoklive spider afreecatv

douyinliverecorder's Introduction

video_spider

💡简介

Python Version Supported Platforms Docker Pulls GitHub issues Latest Release Downloads

一款简易的可循环值守的直播录制工具,基于FFmpeg实现多平台直播源录制,支持自定义配置录制以及直播状态推送。

😺已支持平台

  • 抖音
  • TikTok
  • 快手
  • 虎牙
  • 斗鱼
  • YY
  • B站
  • 小红书
  • bigo
  • blued
  • AfreecaTV
  • 网易cc
  • 千度热播
  • PandaTV
  • 猫耳FM
  • Look直播
  • WinkTV
  • FlexTV
  • PopkonTV
  • TwitCasting
  • 百度直播
  • 微博直播
  • 酷狗直播
  • TwitchTV
  • 更多平台正在更新中

🎈项目结构

.
└── DouyinLiveRecorder/
    ├── /config -> (config record)
    ├── /logs -> (save runing log file)
    ├── /backup_config -> (backup file)
    ├── /libs -> (dll file)
    ├── main.py -> (main file)
    ├── spider.py-> (get live url)
    ├── utils.py -> (contains utility functions)
    ├── logger.py -> (logger handdle)
    ├── web_rid.py -> (get web_rid)
    ├── msg_push.py -> (send live status update message)
    ├── cookies.py -> (get douyin cookies)
    ├── x-bogus.js -> (get douyin xbogus token)
    ├── ffmpeg.exe -> (record video)
    ├── index.html -> (play m3u8 and flv video)
    ├── requirements.txt -> (library dependencies)
    ├── docker-compose.yaml -> (Container Orchestration File)
    ├── Dockerfile -> (Application Build Recipe)

🌱使用说明

  • 对于只想使用录制软件的小白用户,进入Releases 中下载最新发布的 zip压缩包即可,里面有打包好的录制软件。(有些电脑可能会报毒,直接忽略即可,如果下载时被浏览器屏蔽,请更换浏览器下载)

  • 压缩包解压后,在 config 文件夹内的 URL_config.ini 中添加录制直播间地址,一行一个直播间地址。如果要自定义配置录制,可以修改config.ini 文件,推荐将录制格式修改为ts

  • 以上步骤都做好后,就可以运行DouyinLiveRecorder.exe 程序进行录制了。录制的视频文件保存在同目录下的 downloads 文件夹内。

  • 另外,如果需要录制TikTok、AfreecaTV等海外平台,请在配置文件中设置开启代理并添加proxy_addr链接 如:127.0.0.1:7890 (这只是示例地址,具体根据实际填写)。

  • 假如URL_config.ini文件中添加的直播间地址,有个别直播间暂时不想录制又不想移除链接,可以在对应直播间的链接开头加上#,那么下次启动软件录制时将跳过该直播间。

  • 软件默认录制清晰度为 原画 ,如果要单独设置某个直播间的录制画质,可以在添加直播间地址时前面加上画质即可,如超清,https://live.douyin.com/745964462470 记得中间要有, 分隔。

  • 如果要长时间挂着软件循环监测直播,最好循环时间设置长一点(咱也不差没录制到的那几分钟),避免因请求频繁导致被官方封禁IP 。

  • 要停止直播录制,使用Ctrl+C 或直接关闭程序即可。

  • 最后,欢迎右上角给本项目一个star,同时也非常乐意大家提交pr。

直播间链接示例:

抖音:
https://live.douyin.com/745964462470
https://v.douyin.com/iQFeBnt/

TikTok:
https://www.tiktok.com/@pearlgaga88/live

快手:
https://live.kuaishou.com/u/yall1102

虎牙:
https://www.huya.com/52333

斗鱼:
https://www.douyu.com/3637778?dyshid=
https://www.douyu.com/topic/wzDBLS6?rid=4921614&dyshid=

YY:
https://www.yy.com/22490906/22490906

B站:
https://live.bilibili.com/320

小红书:
https://www.xiaohongshu.com/hina/livestream/569077534207413574/1707413727088?appuid=5f3f478a00000000010005b3&

bigo直播:
https://www.bigo.tv/cn/716418802

buled直播:
https://app.blued.cn/live?id=Mp6G2R

AfreecaTV:
https://play.afreecatv.com/sw7love

网易cc:
https://cc.163.com/583946984

千度热播:
https://qiandurebo.com/web/video.php?roomnumber=33333

PandaTV:
https://www.pandalive.co.kr/live/play/bara0109

猫耳FM:
https://fm.missevan.com/live/868895007

Look直播:
https://look.163.com/live?id=65108820&position=3

WinkTV:
https://www.winktv.co.kr/live/play/anjer1004

FlexTV:
https://www.flextv.co.kr/channels/593127/live

PopkonTV:
https://www.popkontv.com/live/view?castId=wjfal007&partnerCode=P-00117
https://www.popkontv.com/channel/notices?mcid=wjfal007&mcPartnerCode=P-00117

TwitCasting:
https://twitcasting.tv/c:uonq

百度直播:
https://live.baidu.com/m/media/pclive/pchome/live.html?room_id=9175031377&tab_category

微博直播:
https://weibo.com/l/wblive/p/show/1022:2321325026370190442592

酷狗直播:
https://fanxing2.kugou.com/50428671?refer=2177&sourceFrom=

TwitchTV:
https://www.twitch.tv/gamerbee

直播间分享地址和网页端长地址都能正常进行录制(抖音尽量用长链接,避免因短链接转换失效导致不能正常录制,而且需要有nodejs环境,否则无法转换)。

解析接口:

该解析接口 仅供演示(演示接口暂时停止,后续再开放),并且只包含抖音、快手、虎牙直播的解析,其他平台如有需要请自行添加,源码在这里 DouyinLiveRecorder/api

在线播放m3u8和flv视频网站:M3U8 在线视频播放器 ,源码是 index.html

🎃源码运行

使用源码运行,前提要有Python环境,如果没有请先安装Python,再执行下面步骤。

1.首先拉取或手动下载本仓库项目代码

git clone https://github.com/ihmily/DouyinLiveRecorder.git

2.进入项目文件夹,安装依赖

cd DouyinLiveRecorder
pip3 install -r requirements.txt

3.安装FFmpeg,如果是Windows系统,这一步可跳过。对于Linux系统,执行以下命令安装

CentOS执行

yum install epel-release
yum install ffmpeg

Ubuntu则执行

apt update
apt install ffmpeg

macOS 执行

如果已经安装 Homebrew 请跳过这一步

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install ffmpeg

4.运行程序

python main.py

其中Linux系统请使用python3 main.py 运行。

🐋容器运行

在运行命令之前,请确保您的机器上安装了 DockerDocker Compose

1.快速启动

最简单方法是运行项目中的 docker-compose.yaml 文件,只需简单执行以下命令:

docker-compose up

可选 -d 在后台运行。第一次运行之后都可用 docker-compose start 启动已创建的容器。

2.构建镜像(可选)

如果你只想简单的运行程序,则不需要做这一步。要自定义本地构建,可以修改 docker-compose.yaml 文件,如将镜像名修改为 douyin-live-recorder:latest,并取消 # build: . 注释,然后再执行

docker build -t douyin-live-recorder:latest .
docker-compose up

或者直接使用下面命令进行构建并启动

docker-compose -f docker-compose.yaml up

3.停止容器实例

docker-compose stop

4.注意事项

①在docker容器内运行本程序之前,请先在配置文件中添加要录制的直播间地址。

②在容器内时,如果手动中断容器运行停止录制,会导致正在录制的视频文件损坏!

如果想避免手动中断或者异常中断导致文件损坏的情况,请使用 ts 格式录制并且不要开启自动转成mp4设置

❤️贡献者

   Hmily iridescentGray annidy wwkk2580 missuo xueli12

⏳提交日志

  • 20240425

    • 新增TwitchTV直播录制
  • 20240424

    • 新增酷狗直播录制、优化PopkonTV直播录制
  • 20240423

    • 新增百度直播录制、微博直播录制

    • 修复斗鱼录制直播回放的问题

    • 新增直播源地址显示以及输出到日志文件设置

  • 20240311

    • 修复海外平台录制bug,增加画质选择,增强录制稳定性

    • 修复虎牙录制bug (虎牙一起看频道 有特殊限制,有时无法录制)

  • 20240309

    • 修复虎牙直播、小红书直播和B站直播录制
    • 新增5个直播平台录制,包括winktv、flextv、look、popkontv、twitcasting
    • 新增部分海外平台账号密码配置,实现自动登录并更新配置文件中的cookie
    • 新增自定义配置需要使用代理录制的平台
    • 新增只推送开播消息不进行录制设置
    • 修复了一些bug
  • 20240209

    • 优化AfreecaTV录制,新增账号密码登录获取cookie以及持久保存
    • 修复了小红书直播因官方更新直播域名,导致无法录制直播的问题
    • 修复了更新URL配置文件的bug
    • 最后,祝大家新年快乐!
  • 20240129

    • 新增猫耳FM直播录制
  • 20240127

    • 新增千度热播直播录制、新增pandaTV(韩国)直播录制

    • 新增telegram直播状态消息推送,修复了某些bug

    • 新增自定义设置不同直播间的录制画质(即每个直播间录制画质可不同)

    • 修改录制视频保存路径为 downloads 文件夹,并且分平台进行保存。

  • 20240114

    • 新增网易cc直播录制,优化ffmpeg参数,修改AfreecaTV输入直播地址格式

    • 修改日志记录器 @iridescentGray

  • 20240102

    • 修复Linux上运行,新增docker配置文件
  • 20231210

    • 修复录制分段bug,修复bigo录制检测bug

    • 新增自定义修改录制主播名

    • 新增AfreecaTV直播录制,修复某些可能会发生的bug

  • 20231207

    • 新增blued直播录制,修复YY直播录制,新增直播结束消息推送
  • 20231206

    • 新增bigo直播录制
  • 20231203

    • 新增小红书直播录制(全网首发),目前小红书官方没有切换清晰度功能,因此直播录制也只有默认画质
    • 小红书录制暂时无法循环监测,每次主播开启直播,都要重新获取一次链接
    • 获取链接的方式为 将直播间转发到微信,在微信中打开后,复制页面的链接。
  • 20231030

    • 本次更新只是进行修复,没时间新增功能。
    • 欢迎各位大佬提pr 帮忙更新维护
  • 20230930

    • 新增抖音从接口获取直播流,增强稳定性

    • 修改快手获取直播流的方式,改用从官方接口获取

    • 祝大家中秋节快乐!

  • 20230919

    • 修复了快手版本更新后录制出错的问题,增加了其自动获取cookie(稳定性未知)
    • 修复了TikTok显示正在直播但不进行录制的问题
  • 20230907

    • 修复了因抖音官方更新了版本导致的录制出错以及短链接转换出错

    • 修复B站无法录制原画视频的bug

    • 修改了配置文件字段,新增各平台自定义设置Cookie

  • 20230903

    • 修复了TikTok录制时报644无法录制的问题
    • 新增直播状态推送到钉钉和微信的功能,如有需要请看 设置推送教程
    • 最近比较忙,其他问题有时间再更新
  • 20230816

    • 修复斗鱼直播(官方更新了字段)和快手直播录制出错的问题
  • 20230814

    • 新增B站直播录制
    • 写了一个在线播放M3U8和FLV视频的网页源码,打开即可食用
  • 20230812

    • 新增YY直播录制
  • 20230808

    • 修复主播重新开播无法再次录制的问题
  • 20230807

    • 新增了斗鱼直播录制

    • 修复显示录制完成之后会重新开始录制的问题

  • 20230805

    • 新增了虎牙直播录制,其暂时只能用flv视频流进行录制

    • Web API 新增了快手和虎牙这两个平台的直播流解析(TikTok要代理)

  • 20230804

    • 新增了快手直播录制,优化了部分代码
    • 上传了一个自动化获取抖音直播间页面Cookie的代码,可以用于录制
  • 20230803

    • 通宵更新
    • 新增了国际版抖音TikTok的直播录制,去除冗余 简化了部分代码
  • 20230724

    • 新增了一个通过抖音直播间地址获取直播视频流链接的API接口,上传即可用

有问题可以提issue ,后续我会在这里不断更新其他直播平台的录制 欢迎Star

douyinliverecorder's People

Contributors

ihmily avatar iridescentgray avatar missuo avatar wwkk2580 avatar yinruiqing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

douyinliverecorder's Issues

YY直播画面尺寸问题

主播PK开始或结束时,视频尺寸大小不能自动更换,会一直保持录制开始的画面尺寸,请问可以修复这个问题吗?

Server returned 403 Forbidden

2023-09-07 11:38:08,395 - 错误信息: Command '['ffmpeg', '-y', '-v', 'verbose', '-rw_timeout', '10000000', '-loglevel', 'error', '-hide_banner', '-user_agent', 'Mozilla/5.0 (Linux; Android 11; SAMSUNG SM-G973U) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/14.2 Chrome/87.0.4280.141 Mobile Safari/537.36', '-protocol_whitelist', 'rtmp,crypto,file,http,https,tcp,tls,udp,rtp', '-thread_queue_size', '1024', '-analyzeduration', '2147483647', '-probesize', '2147483647', '-fflags', '+discardcorrupt', '-i', 'http://pull-hls-l1.douyincdn.com/stage/stream-401916190832721950_or4/playlist.m3u8?keeptime=00093a80u0026wsSecret=aac341f87d0cfda4280f56e0a91150b2u0026wsTime=64f9459f', '-bufsize', '5000k', '-sn', '-dn', '-reconnect_delay_max', '30', '-reconnect_streamed', '-reconnect_at_eof', '-c:a', 'copy', '-max_muxing_queue_size', '64', '-correct_ts_overflow', '1', '-map', '0', '-c:v', 'copy', '-f', 'mp4', 'C:\Users\jenkin\Downloads\Compressed\DouyinLiveRecorder v1.0.7\DouyinLiveRecorder v1.0.7/意大利西蒙记/意大利西蒙记_2023-09-07-11-38-08.mp4']' returned non-zero exit status 1. 发生错误的行数: 740

抖音直播又无法正常录制啦

控制台报错如下:
错误信息644:'NoneType' object has no attribute 'group'
读取的地址为: https://live.douyin.com/168465302284 发生错误的行数: 439
image

我打断点看了一下出问题的语句在spider.py中第37行正则匹配,没匹配到目标字符串导致re.search返回了一个None,group函数直接抛异常了,看看是不是正则匹配的问题

你好,录制Tik Tok直播的时候一直显示错误代码644

目前是随便找了个直播间在调试,一直出现这样的提示
错误信息644:HTTPSConnectionPool(host= ' www . tiktok. com',port=443): Max retries exceeded with url: /@hi _yang0522/live (Caused by ProxyError( ' Cannot connect to proxy. ' ,ConnectionRestError(10054, ' 远程主机强迫关闭了一个现有的连接。’,None,10054,None)))
读取的地址为: https://www . tiktok. com/ @hi_yang0522/live 发生错误的行数: 511
按照您提供的注意事项调试了很久也没有解决,想问问应该怎么办

494错误

错误信息: 'NoneType' object has no attribute 'group' 发生错误的行数: 494
这是啥原因?

为啥有的直播出错?

IMG_20230913_084238

为什么个别直播,录制出错?反复看了几次url链接,也没什么问题,都是直播间复制过来的?

录制TK的时候,有的会弹出错误信息

录制TK的时候,有的会弹出错误信息
错误行数674,2023-08-27 10:04:51,781 - 错误信息: Command '['ffmpeg', '-y', '-v', 'verbose', '-rw_timeout', '10000000', '-loglevel', 'error', '-hide_banner', '-user_agent', 'Mozilla/5.0 (Linux; Android 11; SAMSUNG SM-G973U) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/14.2 Chrome/87.0.4280.141 Mobile Safari/537.36', '-protocol_whitelist', 'rtmp,crypto,file,http,https,tcp,tls,udp,rtp', '-thread_queue_size', '1024', '-analyzeduration', '2147483647', '-probesize', '2147483647', '-fflags', '+discardcorrupt', '-i', 'http://pull-hls-f16-tt01.fcdn.us.tiktokv.com/stage/stream-2995925731452125257_or4/index.m3u8', '-bufsize', '5000k', '-sn', '-dn', '-reconnect_delay_max', '30', '-reconnect_streamed', '-reconnect_at_eof', '-c:a', 'copy', '-max_muxing_queue_size', '64', '-correct_ts_overflow', '1', '-map', '0', '-c:v', 'copy', '-f', 'mp4',

ts格式录制抖音问题

会分成两段甚至三段一起录,录的视频内容是一样的,显示的录制时间正常,文件名不知道怎么回事不一样,是不是重新开播时间我没注意,但是视频时间和cmd显示的已录制时间不一样,cmd显示录制了1个小时,但是视频文件只有10分钟,同一个主播其他同一时间生成的录制视频也完全一样,应该是ts录制的问题,我现在切换回mp4看看有没有这种情况

大佬你好,关于抖音cookie问题

我已经填写了抖音cookie为什么还会报错呢

2023-08-14 23:01:14,829 - 错误信息: 'NoneType' object has no attribute 'group' 发生错误的行数: 528 2023-08-14 23:01:19,863 - 错误信息: 'name' 发生错误的行数: 519 2023-08-14 23:01:25,182 - 错误信息: 'name' 发生错误的行数: 519

虽然有这个提示但是是可以录制抖音的

不知道抖音的cookie是不是这个?
QQ截图20230814230003.png

求大佬解答,谢谢

请问一下,“错误日志文件.log”里面一直出现如下的错误是什么原因?

2023-08-15 11:05:28,593 - 错误信息: 'NoneType' object has no attribute 'group' 发生错误的行数: 528
2023-08-15 11:06:32,674 - 错误信息: 'NoneType' object has no attribute 'group' 发生错误的行数: 528
2023-08-15 11:07:29,738 - 错误信息: 'NoneType' object has no attribute 'group' 发生错误的行数: 528
2023-08-15 11:08:26,797 - 错误信息: 'NoneType' object has no attribute 'group' 发生错误的行数: 528
2023-08-15 11:09:28,871 - 错误信息: 'NoneType' object has no attribute 'group' 发生错误的行数: 528

直播录制问题

直播结束后,不会监测到直播结束而是会一直显示正在录制,多个不同直播间可复现

无法启动软件

双击软件后显示:
The program can't start because api-ms-win-core-path-lt-1-0.dll is missing from your computer. Try reinstalling the program to fix this problem.
请求帮助。谢谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.