nfe-w / aio-dynamic-push

一款整合多平台动态/直播开播提醒检测与推送的小工具, 目前支持:B站、微博、小红书、抖音、斗鱼、虎牙。
MIT License
125 stars 16 forks source link

Can the future be added to the live offline reminder? #1

Closed openai1998 closed 3 months ago

openai1998 commented 7 months ago

I'm glad to see you open-source this project, it's exactly what I was looking for. It has been very helpful to me. Thank you for your open-source spirit. Can you add offline reminders for live broadcasts in the future? Thank you

openai1998 commented 7 months ago

你好,我请教一下,关于程序运行之后抖音检测“【抖音-查询直播状态-任务_douyin】请求返回数据为空”, 配置如下:

  - name: 任务_douyin
    enable: true
    type: douyin
    intervals_second: 30
    begin_time: "00:00"
    end_time: "23:59"
    target_push_name_list:
      - 推送通道_企业微信应用
      - 推送通道_钉钉机器人
      - 推送通道_Bark
    enable_dynamic_check: true
    # 签名服务器url,参考 https://github.com/coder-fly/douyin-signature
    signature_server_url: http://127.0.0.1:7878
    # 用户名列表,必填(接口现在不返回作者信息了,重新获取还挺麻烦的,自己填上凑合用先)
    username_list:
      - 嘉然今天吃什么
      - 七海Nana7mi
      - 🐼冯小落
      - 小爬爬贼能爬
    # 作者sec_uid列表,参考 https://www.douyin.com/user/MS4wLjABAAAA5ZrIrbgva_HMeHuNn64goOD2XYnk4ItSypgRHlbSh1c
    sec_uid_list:
      - MS4wLjABAAAA5ZrIrbgva_HMeHuNn64goOD2XYnk4ItSypgRHlbSh1c
      - MS4wLjABAAAAGeiluJjizroSmPhcNdlsS0b7M0rxi5ygfrtqdByE0FCYi__j0fS_E52uGaF7ujpn
      - MS4wLjABAAAAlJ_Y0WWXG3xqX3zBxT7wzaHtZAhcYVOrEF83-Z3wTGk
      - MS4wLjABAAAAquyAte90Qx2SgpXDps-DIrASNRUCyAm4A4Uv7Ek8C5M
    enable_living_check: true
    # 抖音号列表,用于检测开播状态,如果不开启直播检测可以不填,暂不支持纯数字的抖音号
    douyin_id_list:
      - ASOULjiaran
      - Nana7mi0715
      - fll102097
      - xiaopapa1331

运行log

 ~#@❯ python.exe .\main.py
2024-01-28 17:30:03,840 - 18664-MainThread -            config.py[line: 18] -  INFO: 加载配置common: {'proxy_pool': {'enable': False, 'proxy_pool_url': 'http://ip:port'}}
2024-01-28 17:30:03,950 - 18664-MainThread -            config.py[line: 23] -  INFO: 加载配置query_task: [{'name': '任务_bilibili', 'enable': False, 'type': 'bilibili', 'intervals_second': 60, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推送通道_企业微信应用', '推送通道_钉钉机器人'], 'enable_dynamic_check': True, 'enable_living_check': True, 'uid_list': [1795147802, 1669777785, 
1778026586, 1875044092, 1811071010, 2018113152]}, {'name': '任务_weibo', 'enable': False, 'type': 'weibo', 'intervals_second': 60, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推
送通道_企业微信应用', '推送通道_钉钉机器人'], 'enable_dynamic_check': True, 'uid_list': [7198559139, 1765893783]}, {'name': '任务_xhs', 'enable': False, 'type': 'xhs', 'intervals_second': 300, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推送通道_企业微信应用', '推送通道_钉钉机器人', '推送通道_Bark'], 'enable_dynamic_check': True, 'profile_id_list': ['52d8c541b4c4d60e6c867480', '5bf64788aa4b0a000114b879']}, {'name': '任务_douyin', 'enable': True, 'type': 'douyin', 'intervals_second': 30, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推送通道_企业微信应用', '推送通道_钉钉机器人', '推送通道_Bark'], 'enable_dynamic_check': True, 'signature_server_url': 'http://127.0.0.1:7878', 'username_list': ['嘉然今天吃什么', '七海Nana7mi', '🐼冯小落', '小爬爬贼能爬'], 'sec_uid_list': ['MS4wLjABAAAA5ZrIrbgva_HMeHuNn64goOD2XYnk4ItSypgRHlbSh1c', 'MS4wLjABAAAAGeiluJjizroSmPhcNdlsS0b7M0rxi5ygfrtqdByE0FCYi__j0fS_E52uGaF7ujpn', 'MS4wLjABAAAAlJ_Y0WWXG3xqX3zBxT7wzaHtZAhcYVOrEF83-Z3wTGk', 'MS4wLjABAAAAquyAte90Qx2SgpXDps-DIrASNRUCyAm4A4Uv7Ek8C5M'], 'enable_living_check': True, 'douyin_id_list': ['ASOULjiaran', 'Nana7mi0715', 'fll102097', 'xiaopapa1331']}]
2024-01-28 17:30:03,950 - 18664-MainThread -            config.py[line: 28] -  INFO: 加载配置push_channel: [{'name': '推送通道_Server酱_Turbo', 'enable': False, 'type': 'serverChan_turbo', 'send_key': None}, {'name': '推送通道_企业微信应用', 'enable': False, 'type': 'wecom_apps', 'corp_id': None, 'agent_id': None, 'corp_secret': None}, {'name': '推送通道_钉钉机器人', 'enable': False, 'type': 'dingtalk_bot', 'access_token': None}, {'name': '推送通道_飞书自建应用', 'enable': False, 'type': 'feishu_apps', 'app_id': None, 'app_secret': None, 'receive_id_type': None, 'receive_id': None}, {'name': '推送通道_飞 
书机器人', 'enable': False, 'type': 'feishu_bot', 'webhook_key': None}, {'name': '推送通道_Telegram机器人', 'enable': False, 'type': 'telegram_bot', 'api_token': None, 'chat_id': None}, {'name': '推送通道
_Bark', 'enable': True, 'type': 'bark', 'key': 'b272115bc45ac8f9469e7578ccf2f46858f2f63c619e2cd6636f03ccebdbaec4'}, {'name': '推送通道_Gotify', 'enable': False, 'type': 'gotify', 'web_server_url': None}, 
{'name': '推送通道_Webhook', 'enable': False, 'type': 'webhook', 'webhook_url': 'https://xxx.com?title={{title}}&content={{content}}', 'request_method': 'GET'}, {'name': '推送通道_Email', 'enable': False, 'type': 'email', 'smtp_host': None, 'smtp_port': None, 'smtp_ssl': True, 'smtp_tls': False, 'sender_email': None, 'sender_password': None, 'receiver_email': None}]
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 12] -  INFO: 开始初始化推送通道
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 19] -  INFO: 初始化推送通道: 推送通道_Bark,通道类型: bark
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 23] -  INFO: 初始化查询任务
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 28] -  INFO: 初始化查询任务: 任务_douyin,任务类型: douyin
2024-01-28 17:30:06,882 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【嘉然今天吃什么】动态初始化:deque(['7284263672547904803', '7283711597556550947', '7289448969162313000', '7289449644197825792', '7291615968101518603', '7293370136600268071', '7294571633522527507', '7295741250588708123', '7295742306550811914', '7295743272931101989', '7299717689730272551', 
'7300854575983037715', '7302428386306198810', '7303877594733219084', '7315317318827904294'], maxlen=20)
2024-01-28 17:30:09,670 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【七海Nana7mi】动态初始化:deque(['7235212310350990650', '7237076172729896232', '7248187673406360865', '7269980915521162553', '7270397924868214068', '7275217866511748412', '7283071169484442880', '7283829704342244645', '7286826054797364536', '7294206784523259173', '7301187915466542371', '7304598735533673766', '7309426737543204122', '7316051532028431652', '7322423039394696486'], maxlen=20)
2024-01-28 17:30:12,794 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【🐼冯小落】动态初始化:deque(['7306094609455795475', '7306920837465083155', '7310141072338947367', '7311322379253206284', '7312020603077201206', '7316506663991659787', '7317240880052718884', '7320551784018169151', '7323142403983019300', '7323515162172853558', '7324284874343468324', '7325683390248750390', '7326859915404873023', '7327563314454596900', '7328706592159862057'], maxlen=20)
2024-01-28 17:30:15,520 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【小爬爬贼能爬】动态初始化:deque(['7323438218592914726', '7323850228749176101', '7324591077745331494', '7324963752019905818', '7325340726714256678', '7325673497911397682', '7325832912824257830', '7326414209351191846', '7327195087627226420', '7327560554845981987', '7327853565354036480', '7327901457003367695', '7328305114261769512', '7328675719666617635', '7329050213988011299'], maxlen=20)
2024-01-28 17:30:17,925 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:ASOULjiaran
2024-01-28 17:30:20,805 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:Nana7mi0715
2024-01-28 17:30:22,997 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:fll102097
2024-01-28 17:30:26,155 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:xiaopapa1331
2024-01-28 17:30:47,678 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:ASOULjiaran
2024-01-28 17:30:49,913 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:Nana7mi0715
2024-01-28 17:30:52,087 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:fll102097
2024-01-28 17:30:54,471 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:xiaopapa1331
2024-01-28 17:31:38,151 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:ASOULjiaran
2024-01-28 17:31:40,368 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:Nana7mi0715
2024-01-28 17:31:42,649 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:fll102097
2024-01-28 17:31:45,280 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:xiaopapa1331

Snipaste_2024-01-28_17-33-28

难道是我没有配置IP池原因吗?

其中我后面添加的两个用户是在开播的:
      - 🐼冯小落
      - 小爬爬贼能爬
      似乎也获取不到

请教一下大佬,什么环节方向错了

nfe-w commented 7 months ago

你好,我请教一下,关于程序运行之后抖音检测“【抖音-查询直播状态-任务_douyin】请求返回数据为空”, 配置如下:

  - name: 任务_douyin
    enable: true
    type: douyin
    intervals_second: 30
    begin_time: "00:00"
    end_time: "23:59"
    target_push_name_list:
      - 推送通道_企业微信应用
      - 推送通道_钉钉机器人
      - 推送通道_Bark
    enable_dynamic_check: true
    # 签名服务器url,参考 https://github.com/coder-fly/douyin-signature
    signature_server_url: http://127.0.0.1:7878
    # 用户名列表,必填(接口现在不返回作者信息了,重新获取还挺麻烦的,自己填上凑合用先)
    username_list:
      - 嘉然今天吃什么
      - 七海Nana7mi
      - 🐼冯小落
      - 小爬爬贼能爬
    # 作者sec_uid列表,参考 https://www.douyin.com/user/MS4wLjABAAAA5ZrIrbgva_HMeHuNn64goOD2XYnk4ItSypgRHlbSh1c
    sec_uid_list:
      - MS4wLjABAAAA5ZrIrbgva_HMeHuNn64goOD2XYnk4ItSypgRHlbSh1c
      - MS4wLjABAAAAGeiluJjizroSmPhcNdlsS0b7M0rxi5ygfrtqdByE0FCYi__j0fS_E52uGaF7ujpn
      - MS4wLjABAAAAlJ_Y0WWXG3xqX3zBxT7wzaHtZAhcYVOrEF83-Z3wTGk
      - MS4wLjABAAAAquyAte90Qx2SgpXDps-DIrASNRUCyAm4A4Uv7Ek8C5M
    enable_living_check: true
    # 抖音号列表,用于检测开播状态,如果不开启直播检测可以不填,暂不支持纯数字的抖音号
    douyin_id_list:
      - ASOULjiaran
      - Nana7mi0715
      - fll102097
      - xiaopapa1331

运行log

 ~#@❯ python.exe .\main.py
2024-01-28 17:30:03,840 - 18664-MainThread -            config.py[line: 18] -  INFO: 加载配置common: {'proxy_pool': {'enable': False, 'proxy_pool_url': 'http://ip:port'}}
2024-01-28 17:30:03,950 - 18664-MainThread -            config.py[line: 23] -  INFO: 加载配置query_task: [{'name': '任务_bilibili', 'enable': False, 'type': 'bilibili', 'intervals_second': 60, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推送通道_企业微信应用', '推送通道_钉钉机器人'], 'enable_dynamic_check': True, 'enable_living_check': True, 'uid_list': [1795147802, 1669777785, 
1778026586, 1875044092, 1811071010, 2018113152]}, {'name': '任务_weibo', 'enable': False, 'type': 'weibo', 'intervals_second': 60, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推
送通道_企业微信应用', '推送通道_钉钉机器人'], 'enable_dynamic_check': True, 'uid_list': [7198559139, 1765893783]}, {'name': '任务_xhs', 'enable': False, 'type': 'xhs', 'intervals_second': 300, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推送通道_企业微信应用', '推送通道_钉钉机器人', '推送通道_Bark'], 'enable_dynamic_check': True, 'profile_id_list': ['52d8c541b4c4d60e6c867480', '5bf64788aa4b0a000114b879']}, {'name': '任务_douyin', 'enable': True, 'type': 'douyin', 'intervals_second': 30, 'begin_time': '00:00', 'end_time': '23:59', 'target_push_name_list': ['推送通道_企业微信应用', '推送通道_钉钉机器人', '推送通道_Bark'], 'enable_dynamic_check': True, 'signature_server_url': 'http://127.0.0.1:7878', 'username_list': ['嘉然今天吃什么', '七海Nana7mi', '🐼冯小落', '小爬爬贼能爬'], 'sec_uid_list': ['MS4wLjABAAAA5ZrIrbgva_HMeHuNn64goOD2XYnk4ItSypgRHlbSh1c', 'MS4wLjABAAAAGeiluJjizroSmPhcNdlsS0b7M0rxi5ygfrtqdByE0FCYi__j0fS_E52uGaF7ujpn', 'MS4wLjABAAAAlJ_Y0WWXG3xqX3zBxT7wzaHtZAhcYVOrEF83-Z3wTGk', 'MS4wLjABAAAAquyAte90Qx2SgpXDps-DIrASNRUCyAm4A4Uv7Ek8C5M'], 'enable_living_check': True, 'douyin_id_list': ['ASOULjiaran', 'Nana7mi0715', 'fll102097', 'xiaopapa1331']}]
2024-01-28 17:30:03,950 - 18664-MainThread -            config.py[line: 28] -  INFO: 加载配置push_channel: [{'name': '推送通道_Server酱_Turbo', 'enable': False, 'type': 'serverChan_turbo', 'send_key': None}, {'name': '推送通道_企业微信应用', 'enable': False, 'type': 'wecom_apps', 'corp_id': None, 'agent_id': None, 'corp_secret': None}, {'name': '推送通道_钉钉机器人', 'enable': False, 'type': 'dingtalk_bot', 'access_token': None}, {'name': '推送通道_飞书自建应用', 'enable': False, 'type': 'feishu_apps', 'app_id': None, 'app_secret': None, 'receive_id_type': None, 'receive_id': None}, {'name': '推送通道_飞 
书机器人', 'enable': False, 'type': 'feishu_bot', 'webhook_key': None}, {'name': '推送通道_Telegram机器人', 'enable': False, 'type': 'telegram_bot', 'api_token': None, 'chat_id': None}, {'name': '推送通道
_Bark', 'enable': True, 'type': 'bark', 'key': 'b272115bc45ac8f9469e7578ccf2f46858f2f63c619e2cd6636f03ccebdbaec4'}, {'name': '推送通道_Gotify', 'enable': False, 'type': 'gotify', 'web_server_url': None}, 
{'name': '推送通道_Webhook', 'enable': False, 'type': 'webhook', 'webhook_url': 'https://xxx.com?title={{title}}&content={{content}}', 'request_method': 'GET'}, {'name': '推送通道_Email', 'enable': False, 'type': 'email', 'smtp_host': None, 'smtp_port': None, 'smtp_ssl': True, 'smtp_tls': False, 'sender_email': None, 'sender_password': None, 'receiver_email': None}]
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 12] -  INFO: 开始初始化推送通道
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 19] -  INFO: 初始化推送通道: 推送通道_Bark,通道类型: bark
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 23] -  INFO: 初始化查询任务
2024-01-28 17:30:03,951 - 18664-MainThread -              main.py[line: 28] -  INFO: 初始化查询任务: 任务_douyin,任务类型: douyin
2024-01-28 17:30:06,882 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【嘉然今天吃什么】动态初始化:deque(['7284263672547904803', '7283711597556550947', '7289448969162313000', '7289449644197825792', '7291615968101518603', '7293370136600268071', '7294571633522527507', '7295741250588708123', '7295742306550811914', '7295743272931101989', '7299717689730272551', 
'7300854575983037715', '7302428386306198810', '7303877594733219084', '7315317318827904294'], maxlen=20)
2024-01-28 17:30:09,670 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【七海Nana7mi】动态初始化:deque(['7235212310350990650', '7237076172729896232', '7248187673406360865', '7269980915521162553', '7270397924868214068', '7275217866511748412', '7283071169484442880', '7283829704342244645', '7286826054797364536', '7294206784523259173', '7301187915466542371', '7304598735533673766', '7309426737543204122', '7316051532028431652', '7322423039394696486'], maxlen=20)
2024-01-28 17:30:12,794 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【🐼冯小落】动态初始化:deque(['7306094609455795475', '7306920837465083155', '7310141072338947367', '7311322379253206284', '7312020603077201206', '7316506663991659787', '7317240880052718884', '7320551784018169151', '7323142403983019300', '7323515162172853558', '7324284874343468324', '7325683390248750390', '7326859915404873023', '7327563314454596900', '7328706592159862057'], maxlen=20)
2024-01-28 17:30:15,520 - 18664-MainThread -      query_douyin.py[line: 71] -  INFO: 【抖音-查询动态状态-任务_douyin】【小爬爬贼能爬】动态初始化:deque(['7323438218592914726', '7323850228749176101', '7324591077745331494', '7324963752019905818', '7325340726714256678', '7325673497911397682', '7325832912824257830', '7326414209351191846', '7327195087627226420', '7327560554845981987', '7327853565354036480', '7327901457003367695', '7328305114261769512', '7328675719666617635', '7329050213988011299'], maxlen=20)
2024-01-28 17:30:17,925 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:ASOULjiaran
2024-01-28 17:30:20,805 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:Nana7mi0715
2024-01-28 17:30:22,997 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:fll102097
2024-01-28 17:30:26,155 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:xiaopapa1331
2024-01-28 17:30:47,678 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:ASOULjiaran
2024-01-28 17:30:49,913 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:Nana7mi0715
2024-01-28 17:30:52,087 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:fll102097
2024-01-28 17:30:54,471 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:xiaopapa1331
2024-01-28 17:31:38,151 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:ASOULjiaran
2024-01-28 17:31:40,368 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:Nana7mi0715
2024-01-28 17:31:42,649 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:fll102097
2024-01-28 17:31:45,280 - 18664-MainThread -      query_douyin.py[line:118] - ERROR: 【抖音-查询直播状态-任务_douyin】请求返回数据为空,user_account:xiaopapa1331

Snipaste_2024-01-28_17-33-28

难道是我没有配置IP池原因吗?

其中我后面添加的两个用户是在开播的:
      - 🐼冯小落
      - 小爬爬贼能爬
      似乎也获取不到

请教一下大佬,什么环节方向错了

目前我是正常的,你可以在无痕窗口打开F12,然后访问 https://live.douyin.com/fll102097 ,看看请求返回的 respone

iShot_2024-01-28_18 39 57
nfe-w commented 7 months ago
iShot_2024-01-28_18 42 11
openai1998 commented 7 months ago

Thank you

nfe-w commented 7 months ago

I'm glad to see you open-source this project, it's exactly what I was looking for. It has been very helpful to me. Thank you for your open-source spirit. Can you add offline reminders for live broadcasts in the future? Thank you

By the way, what do you mean by "offline reminders"? Could you give me an example? 离线提醒是指什么呢?有例子吗?