Coder Social home page Coder Social logo

239144498 / streaming-media-server-pro Goto Github PK

View Code? Open in Web Editor NEW
436.0 8.0 161.0 591 KB

这是一个强大的IPTV源后端服务,具有视频缓冲区功能,程序内置了很多独家频道,不够?你还可以自定义添加电视源;超多功能接口,还可以添加你的代理,并且适合任意平台,非常适合作为家庭影院的IPTV服务!可玩性超高,更多详情点击查看。

Home Page: https://stream.naihe.cf/docs

License: GNU General Public License v3.0

Python 99.06% Dockerfile 0.83% Procfile 0.11%
fastapi iptv proxy video-buffer collaborate github github-pages hls hls-live-streaming live-streaming

streaming-media-server-pro's Introduction

builds Netlify Status
Python version Docker pulls GitHub stars MIT license

Documentation: English version | 中文版

stream.png

目录

项目树形图

.
├── app
│   ├── __init__.py
│   ├── main.py
│   ├── log
│   ├── api
│   │   ├── __init__.py
│   │   ├── a4gtv
│   │   │   ├── __init__.py
│   │   │   ├── endecrypt.py
│   │   │   ├── generateEpg.py
│   │   │   ├── tasks.py
│   │   │   ├── tools.py
│   │   │   └── utile.py
│   │   └── v2
│   │       ├── __init__.py
│   │       └── endpoints
│   │           ├── __init__.py
│   │           ├── more.py
│   │           └── sgtv.py
│   ├── assets
│   │   ├── EPG.xml
│   │   ├── diyepg.txt
│   ├── common
│   │   ├── __init__.py
│   │   ├── costum_logging.py
│   │   ├── diyEpg.py
│   │   ├── gitrepo.py
│   │   └── header.py
│   ├── conf
│   │   ├── __init__.py
│   │   ├── config.ini
│   │   └── config.py
│   ├── db
│   │   ├── __init__.py
│   │   ├── DBtools.py
│   │   └── dbMysql.py
│   └── scheams
│       ├── __init__.py
│       └── basic.py
├── main.py
├── requirements.txt
├── Dockerfile
├── README.md
├── Procfile
└── LICENSE

核心功能

  • 高效流媒体(具有缓冲区)
  • 代理任意视频网站的视频流
  • 生成m3u文件
  • 生成m3u8文件
  • 异步下载流
  • 流媒体转发
  • 生成EPG节目单 每日实时更新
  • 分布式处理ts片
  • Redis缓存参数
  • MySql缓存数据
  • 正向代理请求
  • 自定义节目频道
  • 自定义电视台标
  • 自定义清晰度
  • 支持反向代理或使用CDN(负载均衡)

程序接口指南

https://stream.naihe.cf/docs

播放效果

原理介绍

如下图所示:

文字详解

图中多台服务器是一种理想情况下实现,实际python程序、redis和mysql都可以在同一台服务器中实现

  • ① 客户端请求m3u8文件
    • 1-> 查看内存是否缓存,否则服务器执行图流程2
    • 2-> BackgroundTasks任务:执行图流程3,分布式下载数量根据设置的缓冲区大小决定
    • 3<- 返回m3u8文件
  • ② 客户端请求ts片
    • 1-> 查看本地是否缓存,否则服务器执行图流程2
    • 2-> BackgroundTasks任务:执行图流程3
    • 3-> 查看内存是否已下载完成状态,下载完执行图流程4,否则循环判断等待
    • 4<- 返回ts文件
  • ③ 还有很多技术细节就不一一展开,只列出以上部分

该项目根据分析4gtv网站的接口,通过算法得到生成ts视频的一些关键参数,省去请求网站从而得到m3u8文件的通信时长等开销,针对海外视频网站被墙隔离,支持以下几种观看方式:

  • 通过具有缓冲区的中转服务观看(调用api接口 /online.m3u8)
  • 通过CDN反向代理观看(调用api接口 /channel.m3u8?&host=xxx)
  • 使用科学上网软件观看(调用api接口 /channel2.m3u8)

使用方式

💡提示:最好将本项目部署至美国地区的服务器,否则可能会出现奇怪的BUG。

推荐大家使用Digitalocean的服务器,主要是因为免费。

DigitalOcean Referral Badge

使用我的邀请链接注册,你可以获得$200的credit,当你在上面消费$25时,我也可以获得$25的奖励。

我的邀请链接:

https://m.do.co/c/45e25f5e4569

根据以下通用命令部署本项目

python部署:

python版本>=3.8+

git clone https://github.com/239144498/Streaming-Media-Server-Pro.git

安装依赖

pip install -r requirements.txt

运行

python3 main.py

(docker部署)更多使用教程详情 https://www.cnblogs.com/1314h/p/16651157.html

现已支持频道

  • 在diychannel.txt文件添加自定义频道

License

GNU-3.0 © naihe

streaming-media-server-pro's People

Contributors

239144498 avatar deepsourcebot avatar jin38324 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

streaming-media-server-pro's Issues

运行后出错 改怎么配置哪些地方

Traceback (most recent call last):
File "C:\Python\lib\site-packages\pymysql\connections.py", line 613, in connec
t
sock = socket.create_connection(
File "C:\Python\lib\socket.py", line 824, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "C:\Python\lib\socket.py", line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Streaming-Media-Server-Pro-main\main.py", line 5, in
from app.main import app
File "C:\Streaming-Media-Server-Pro-main\app\main.py", line 9, in
from app.utile import *
File "C:\Streaming-Media-Server-Pro-main\app\utile.py", line 9, in
from app.tools import *
File "C:\Streaming-Media-Server-Pro-main\app\tools.py", line 15, in
from app.settings import *
File "C:\Streaming-Media-Server-Pro-main\app\settings.py", line 19, in <module

mysql = get_a_conn()

File "C:\Streaming-Media-Server-Pro-main\app\DBtools.py", line 125, in get_a_c
onn
return MySQLConnect(cursorclass, MYSQL_config)
File "C:\Streaming-Media-Server-Pro-main\app\DBtools.py", line 15, in init

self.connection = pymysql.connect(

File "C:\Python\lib\site-packages\pymysql\connections.py", line 353, in __init
__
self.connect()
File "C:\Python\lib\site-packages\pymysql\connections.py", line 664, in connec
t
raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'xxx' ([E
rrno 11001] getaddrinfo failed)")

C:\Streaming-Media-Server-Pro-main>

docker环境下开启后很快无响应

基于本仓库中的代码重新build了docker镜像
服务可以顺利启动,并且可以正常使用一段时间,但是很快(大概3分钟)就会无响应,包括主页都没有响应。
奇怪的是如果是挂载本地app文件夹中的代码启动docker就不会出现这种情况,docker以非后台模式启动也没有出现这种情况。

停滞时,日志总是卡在
INFO 时间戳 - app.api.v2.endpoints.sgtv:call - 第x次尝试获取1
200
然后就不会更新任何活动。
只能重启才能恢复正常。

找不到出错原因。

请教mysql的问题

版主能不能详细介绍一下mysql的用法?
我ubuntu系统,mysql安装好了,也改了root和123456789的密码,端口3306也打开了。
但是运行py的时候,总是报错。

python3 main.py

2022-11-26 03:29:22.281 | INFO | app.conf.config::61 - 配置加载中...
......
2022-11-26 03:29:23.798 | INFO | app.conf.config::147 - 配置加载完成
2022-11-26 03:29:23.897 | INFO | app.db.DBtools::15 - 正在检测数据库连接状态...
2022-11-26 03:29:23.897 | WARNING | app.db.DBtools:connect_redis:34 - redis连接失败
2022-11-26 03:29:23.897 | WARNING | app.db.DBtools::65 - defaultdb未配置mysql
2022-11-26 03:29:23.899 | SUCCESS | app.plugins.a4gtv.utile:init:61 - init final
DEBUG 2022-11-26 03:29:23.923 - app.api:init_app - 日志系统已加载
INFO: Started server process [68]
INFO: Waiting for application startup.
/usr/local/lib/python3.10/dist-packages/tzlocal/unix.py:177: UserWarning: Can not find any timezone configuration, defaulting to UTC.
warnings.warn("Can not find any timezone configuration, defaulting to UTC.")
INFO 2022-11-26 03:29:23.942 - app.api:startup - [<Job (id=affa4069cae14f3ca3502b559253b5e5 name=gotask)>, <Job (id=fd026d0dcb41469f928a71b87fb45d20 name=sqltask)>, <Job (id=1c59bee5ee264ec2b6cad8de29319fa3 name=filetask)>]
INFO 2022-11-26 03:29:23.942 - app.api:startup - 已开启定时任务
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
SUCCESS 2022-11-26 03:30:00.001 - app.plugins.a4gtv.tasks:filetask - 成功删除视频文件0个

請問一直報錯 是否是演算法改變了?無法使用了?

WARNING 2022-11-24 04:29:56.178 - app.plugins.a4gtv.utile:updateonline - 未获得数据
WARNING 2022-11-24 04:29:56.179 - app.plugins.a4gtv.utile:updateonline - 405, https://stream.naihe.cf/api/v2/channel2.m3u8?fid=4gtv-4gtv003&type=v3, {"code":405,"msg":"请求成功","data":"4gtv-4gtv003 频道暂不可用,请过 3363.18107008934 秒 后重试"}
INFO: 192.168.1.1:40030 - "GET /channel.m3u8?fid=4gtv-4gtv003&hd=1080 HTTP/1.1" 406 Not Acceptable
INFO: 192.168.1.1:40034 - "GET /channel.m3u8?fid=4gtv-4gtv003&hd=1080 HTTP/1.1" 405 Method Not Allowed
INFO: 192.168.1.1:40036 - "GET /channel.m3u8?fid=4gtv-4gtv003&hd=1080 HTTP/1.1" 405 Method Not Allowed
INFO: 192.168.1.1:40038 - "GET /channel.m3u8?fid=4gtv-4gtv003&hd=1080 HTTP/1.1" 405 Method Not Allowed
SUCCESS 2022-11-24 04:30:00.003 - app.plugins.a4gtv.tasks:filetask - 成功删除视频文件0个
INFO: 192.168.1.1:40042 - "GET /channel.m3u8?fid=4gtv-4gtv003&hd=1080 HTTP/1.1" 405 Method Not Allowed
INFO: 192.168.1.1:40044 - "GET /channel.m3u8?fid=4gtv-4gtv003&hd=1080 HTTP/1.1" 405 Method Not Allowed
SUCCESS 2022-11-24 04:30:03.274 - app.plugins.a4gtv.endecrypt:get4gtvurl - 4gtv-4gtv001 405
WARNING 2022-11-24 04:30:03.276 - app.plugins.a4gtv.utile:updateonline - 未获得数据
WARNING 2022-11-24 04:30:03.277 - app.plugins.a4gtv.utile:updateonline - 405, https://stream.naihe.cf/api/v2/channel2.m3u8?fid=4gtv-4gtv001&type=v3, {"code":405,"msg":"请求成功","data":"4gtv-4gtv001 频道暂不可用,请过 5364.891244649887 秒后重试"}
INFO: 192.168.1.1:40046 - "GET /channel.m3u8?fid=4gtv-4gtv001&hd=1080 HTTP/1.1" 406 Not Acceptable
INFO: 192.168.1.1:40048 - "GET /channel.m3u8?fid=4gtv-4gtv001&hd=1080 HTTP/1.1" 405 Method Not Allowed
INFO: 192.168.1.1:40054 - "GET /channel.m3u8?fid=4gtv-4gtv001&hd=1080 HTTP/1.1" 405 Method Not Allowed
INFO: 192.168.1.1:40056 - "GET /channel.m3u8?fid=4gtv-4gtv001&hd=1080 HTTP/1.1" 405 Method Not Allowed
SUCCESS 2022-11-24 04:30:12.536 - app.plugins.a4gtv.endecrypt:get4gtvurl - 4gtv-4gtv004 405
WARNING 2022-11-24 04:30:12.539 - app.plugins.a4gtv.utile:updateonline - 未获得数据
WARNING 2022-11-24 04:30:12.541 - app.plugins.a4gtv.utile:updateonline - 405, https://stream.naihe.cf/api/v2/channel2.m3u8?fid=4gtv-4gtv004&type=v3, {"code":405,"msg":"请求成功","data":"4gtv-4gtv004 频道暂不可用,请过 6928.372947692871 秒后重试"}

無法正常使用

我使用串流時出現此錯誤
/channel2.m3u8?fid=4gtv-4gtv003 HTTP/1.1" 404 Not Found

关于视频清晰度

program.m3u生成的频道列表中清晰度参数都是720,是因为源信号都是720的吗?

新版2.6 已重新git 下來 有些頻道可以 大部分都無法解析成功 附上錯誤訊息

INFO: 192.168.1.1:44676 - "GET /live/pool/4gtv-4gtv002/4gtv-live-mid/4gtv-4gtv002-avc1_2000000%3D3-mp4a_131000%3D7-begin%3D2494480040666666-dur%3D40000000-seq%3D62361998.ts?token=SDVd8TCtz-vx5KfYXV6DAQ&expires=1669530198&token1=SJd75CozP8iz88kmVneKQA&expires1=1669530198&refer=MjkxNzZlNWItZTg0NS00OGIzLTk0YzQtZTZmMDZmMTBjMTEz&y=0 HTTP/1.1" 200 OK
INFO: 192.168.1.1:44676 - "GET /live/pool/4gtv-4gtv002/4gtv-live-mid/4gtv-4gtv002-avc1_2000000%3D3-mp4a_131000%3D7-begin%3D2494480080666666-dur%3D40000000-seq%3D62361999.ts?token=SDVd8TCtz-vx5KfYXV6DAQ&expires=1669530198&token1=SJd75CozP8iz88kmVneKQA&expires1=1669530198&refer=MjkxNzZlNWItZTg0NS00OGIzLTk0YzQtZTZmMDZmMTBjMTEz&y=0 HTTP/1.1" 200 OK
SUCCESS 2022-11-27 11:07:41.121 - app.plugins.a4gtv.utile:generatem3u8 - 4gtv-4gtv002 m3u8 generated successfully
INFO: 192.168.1.1:44676 - "GET /channel.m3u8?fid=4gtv-4gtv002&hd=1080 HTTP/1.1" 200 OK
INFO: 192.168.1.1:44676 - "GET /live/pool/4gtv-4gtv002/4gtv-live-mid/4gtv-4gtv002-avc1_2000000%3D3-mp4a_131000%3D7-begin%3D2494480120666666-dur%3D40000000-seq%3D62362000.ts?token=SDVd8TCtz-vx5KfYXV6DAQ&expires=1669530198&token1=SJd75CozP8iz88kmVneKQA&expires1=1669530198&refer=MjkxNzZlNWItZTg0NS00OGIzLTk0YzQtZTZmMDZmMTBjMTEz&y=0 HTTP/1.1" 200 OK
SUCCESS 2022-11-27 11:07:51.525 - app.plugins.a4gtv.endecrypt:get4gtvurl - litv-ftv09 200
INFO: 192.168.1.1:44766 - "GET /channel3.m3u8?fid=litv-ftv09&hd=1080 HTTP/1.1" 307 Temporary Redirect
SUCCESS 2022-11-27 11:07:57.088 - app.plugins.a4gtv.endecrypt:get4gtvurl - 4gtv-live046 200
INFO: 192.168.1.1:44766 - "GET /channel3.m3u8?fid=4gtv-live046&hd=1080 HTTP/1.1" 307 Temporary Redirect
INFO: 192.168.1.1:44866 - "GET /channel2.m3u8?fid=4gtv-4gtv049&hd=1080 HTTP/1.1" 302 Found
INFO: 192.168.1.1:44866 - "GET /channel.m3u8?fid=4gtv-4gtv049&hd=Clarity.h&host=https://4gtvfreepc-cds.cdn.hinet.net HTTP/1.1" 422 Unprocessable Entity
INFO: 192.168.1.1:44868 - "GET /channel.m3u8?fid=4gtv-4gtv049&hd=Clarity.h&host=https://4gtvfreepc-cds.cdn.hinet.net HTTP/1.1" 422 Unprocessable Entity
INFO: 192.168.1.1:44870 - "GET /channel2.m3u8?fid=4gtv-4gtv049&hd=1080 HTTP/1.1" 302 Found
INFO: 192.168.1.1:44870 - "GET /channel.m3u8?fid=4gtv-4gtv049&hd=Clarity.h&host=https://4gtvfreepc-cds.cdn.hinet.net HTTP/1.1" 422 Unprocessable Entity
INFO: 192.168.1.1:44872 - "GET /channel.m3u8?fid=4gtv-4gtv049&hd=Clarity.h&host=https://4gtvfreepc-cds.cdn.hinet.net HTTP/1.1" 422 Unprocessable Entity
SUCCESS 2022-11-27 11:09:13.176 - app.plugins.a4gtv.endecrypt:get4gtvurl - litv-longturn20 200
INFO: 118.169.143.63:38028 - "GET /channel3.m3u8?fid=litv-longturn20&hd=1080 HTTP/1.1" 307 Temporary Redirect
SUCCESS 2022-11-27 11:09:46.062 - app.plugins.a4gtv.endecrypt:get4gtvurl - 4gtv-live024 200
INFO: 118.169.143.63:38136 - "GET /channel3.m3u8?fid=4gtv-live024&hd=1080 HTTP/1.1" 307 Temporary Redirect

另外想問一下~有沒有支付寶可以掃碼讓我請您喝杯咖啡?

导出program.m3u错误

使用的是最新版2.6
使用docker方式导出报网络错误
2023-01-05 15:22:50.719 | INFO | app.conf.config::67 - 配置加载中...
....
2023-01-05 15:22:50.723 | WARNING | app.conf.config::135 - 当前版本为2.6,最新版本为None,请及时更新!
2023-01-05 15:22:50.723 | WARNING | app.conf.config::136 - 更新地址:https://github.com/239144498/Streaming-Media-Server-Pro
2023-01-05 15:22:50.724 | INFO | app.conf.config::141 - 配置加载完成
2023-01-05 15:22:51.415 | INFO | app.db.DBtools::15 - 正在检测数据库连接状态...
2023-01-05 15:22:51.417 | SUCCESS | app.db.DBtools:connect_redis:30 - redis已连接
2023-01-05 15:22:51.490 | INFO | app.db.dbMysql:init_database:85 - video表已存在
2023-01-05 15:22:51.491 | SUCCESS | app.db.DBtools::57 - mysql已创建初始化表
None
2023-01-05 15:22:51.510 | SUCCESS | app.db.DBtools:mysql_connect_test:44 - mysql已连接
2023-01-05 15:22:51.512 | SUCCESS | app.plugins.a4gtv.utile:init:42 - init final
DEBUG 2023-01-05 15:22:51.619 - app.api:init_app - 日志系统已加载
INFO: Started server process [1259336]
INFO 2023-01-05 15:22:51.697 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Started server process [1259336]
INFO: Waiting for application startup.
INFO 2023-01-05 15:22:51.698 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Waiting for application startup.
INFO 2023-01-05 15:22:51.784 - app.api:startup - 已开启定时任务
/usr/local/lib/python3.10/dist-packages/apscheduler/util.py:436: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
return tzinfo.localize(dt)
INFO: Application startup complete.
INFO 2023-01-05 15:22:51.787 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)
INFO 2023-01-05 15:22:51.788 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/uvicorn/protocols/http/h11_impl.py", line 404, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "/usr/local/lib/python3.10/dist-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/fastapi/applications.py", line 270, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 325, in _sentry_patched_asgi_app
return await middleware(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/asgi.py", line 139, in _run_asgi3
return await self._run_app(scope, lambda: self.app(scope, receive, send))
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/asgi.py", line 188, in _run_app
raise exc from None
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/asgi.py", line 183, in _run_app
return await callback()
File "/usr/local/lib/python3.10/dist-packages/starlette/applications.py", line 124, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 184, in call
raise exc
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 162, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 223, in _sentry_exceptionmiddleware_call
await old_call(self, scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/exceptions.py", line 79, in call
raise exc
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/fastapi/middleware/asyncexitstack.py", line 21, in call
raise e
File "/usr/local/lib/python3.10/dist-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 706, in call
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 69, in app
await response(scope, receive, send)
File "/usr/local/lib/python3.10/dist-packages/starlette/responses.py", line 266, in call
async with anyio.create_task_group() as task_group:
File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 662, in aexit
raise exceptions[0]
File "/usr/local/lib/python3.10/dist-packages/starlette/responses.py", line 269, in wrap
await func()
File "/usr/local/lib/python3.10/dist-packages/starlette/responses.py", line 258, in stream_response
async for chunk in self.body_iterator:
File "/usr/local/lib/python3.10/dist-packages/starlette/concurrency.py", line 63, in iterate_in_threadpool
yield await anyio.to_thread.run_sync(_next, iterator)
File "/usr/local/lib/python3.10/dist-packages/anyio/to_thread.py", line 31, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
return await future
File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 867, in run
result = context.run(func, *args)
File "/usr/local/lib/python3.10/dist-packages/starlette/concurrency.py", line 53, in _next
return next(iterator)
File "/home/ubuntu/Streaming-Media-Server-Pro/app/plugins/a4gtv/tools.py", line 21, in generate_m3u
for i in gdata:

TypeError: 'NoneType' object is not iterable
ERROR 2023-01-05 15:23:38.715 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Exception in ASGI application
Traceback (most recent call last):

File "/home/ubuntu/Streaming-Media-Server-Pro/main.py", line 12, in
uvicorn.run(app=app, host="0.0.0.0", port=PORT, log_level="info")
│ │ │ └ 8081
│ │ └ <fastapi.applications.FastAPI object at 0x7fc3716efca0>
│ └ <function run at 0x7fc371635fc0>
└ <module 'uvicorn' from '/usr/local/lib/python3.10/dist-packages/uvicorn/init.py'>

File "/usr/local/lib/python3.10/dist-packages/uvicorn/main.py", line 576, in run
server.run()
│ └ <function Server.run at 0x7fc371697910>
└ <uvicorn.server.Server object at 0x7fc36c44efb0>
File "/usr/local/lib/python3.10/dist-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
│ │ │ │ └ None
│ │ │ └ <function Server.serve at 0x7fc3716979a0>
│ │ └ <uvicorn.server.Server object at 0x7fc36c44efb0>
│ └ <function run at 0x7fc372268280>
└ <module 'asyncio' from '/usr/lib/python3.10/asyncio/init.py'>
File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
│ │ └ <coroutine object Server.serve at 0x7fc36c5f6a40>
│ └ <function BaseEventLoop.run_until_complete at 0x7fc3719f8a60>
└ <_UnixSelectorEventLoop running=True closed=False debug=False>
File "/usr/lib/python3.10/asyncio/base_events.py", line 633, in run_until_complete
self.run_forever()
│ └ <function BaseEventLoop.run_forever at 0x7fc3719f89d0>
└ <_UnixSelectorEventLoop running=True closed=False debug=False>
File "/usr/lib/python3.10/asyncio/base_events.py", line 600, in run_forever
self._run_once()
│ └ <function BaseEventLoop._run_once at 0x7fc3719fa4d0>
└ <_UnixSelectorEventLoop running=True closed=False debug=False>
File "/usr/lib/python3.10/asyncio/base_events.py", line 1896, in _run_once
handle._run()
│ └ <function Handle._run at 0x7fc371b51f30>
└ <Handle Task.task_wakeup()>
File "/usr/lib/python3.10/asyncio/events.py", line 80, in _run
self._context.run(self._callback, *self._args)
│ │ │ │ │ └ <member '_args' of 'Handle' objects>
│ │ │ │ └ <Handle Task.task_wakeup()>
│ │ │ └ <member '_callback' of 'Handle' objects>
│ │ └ <Handle Task.task_wakeup()>
│ └ <member '_context' of 'Handle' objects>
└ <Handle Task.task_wakeup()>

File "/usr/local/lib/python3.10/dist-packages/uvicorn/protocols/http/h11_impl.py", line 404, in run_asgi
result = await app( # type: ignore[func-returns-value]
└ <uvicorn.middleware.proxy_headers.ProxyHeadersMiddleware object at 0x7fc36c44f910>
File "/usr/local/lib/python3.10/dist-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
│ │ │ │ └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ │ │ └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <fastapi.applications.FastAPI object at 0x7fc3716efca0>
└ <uvicorn.middleware.proxy_headers.ProxyHeadersMiddleware object at 0x7fc36c44f910>
File "/usr/local/lib/python3.10/dist-packages/fastapi/applications.py", line 270, in call
await super().call(scope, receive, send)
│ │ └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
└ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 325, in _sentry_patched_asgi_app
return await middleware(scope, receive, send)
│ │ │ └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ │ └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
└ <sentry_sdk.integrations.asgi.SentryAsgiMiddleware object at 0x7fc37037d280>
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/asgi.py", line 139, in _run_asgi3
return await self._run_app(scope, lambda: self.app(scope, receive, send))
│ │ │ │ │ │ │ └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ │ │ │ │ │ └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ │ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ │ │ │ └ <member 'app' of 'SentryAsgiMiddleware' objects>
│ │ │ └ <sentry_sdk.integrations.asgi.SentryAsgiMiddleware object at 0x7fc37037d280>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <function SentryAsgiMiddleware._run_app at 0x7fc36fbac160>
└ <sentry_sdk.integrations.asgi.SentryAsgiMiddleware object at 0x7fc37037d280>
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/asgi.py", line 188, in _run_app
raise exc from None
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/asgi.py", line 183, in _run_app
return await callback()
└ <function SentryAsgiMiddleware._run_asgi3.. at 0x7fc37043fac0>
File "/usr/local/lib/python3.10/dist-packages/starlette/applications.py", line 124, in call
await self.middleware_stack(scope, receive, send)
│ │ │ │ └ <bound method RequestResponseCycle.send of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ │ │ └ <bound method RequestResponseCycle.receive of <uvicorn.protocols.http.h11_impl.RequestResponseCycle object at 0x7fc370371060>>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <starlette.middleware.errors.ServerErrorMiddleware object at 0x7fc36c41da50>
└ <fastapi.applications.FastAPI object at 0x7fc3716efca0>
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_send at 0x7fc37043e710>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <starlette.middleware.errors.ServerErrorMiddleware object at 0x7fc36c41da50>
└ <function ServerErrorMiddleware.call at 0x7fc370a641f0>
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 184, in call
raise exc
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 162, in call
await self.app(scope, receive, _send)
│ │ │ │ └ <function ServerErrorMiddleware.call.._send at 0x7fc37043e680>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7fc36c41da20>
└ <starlette.middleware.errors.ServerErrorMiddleware object at 0x7fc36c41da50>
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 223, in _sentry_exceptionmiddleware_call
await old_call(self, scope, receive, send)
│ │ │ │ └ <function ServerErrorMiddleware.call.._send at 0x7fc37043e680>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7fc36c41da20>
└ <function _enable_span_for_middleware.._create_span_call at 0x7fc36c5f3d90>
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_send at 0x7fc37043e560>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7fc36c41da20>
└ <function ExceptionMiddleware.call at 0x7fc370a64820>
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/exceptions.py", line 79, in call
raise exc
File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/exceptions.py", line 68, in call
await self.app(scope, receive, sender)
│ │ │ │ └ <function ExceptionMiddleware.call..sender at 0x7fc37043e4d0>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fc36c41d9c0>
└ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7fc36c41da20>
File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_send at 0x7fc37043e3b0>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fc36c41d9c0>
└ <function AsyncExitStackMiddleware.call at 0x7fc370a2ae60>
File "/usr/local/lib/python3.10/dist-packages/fastapi/middleware/asyncexitstack.py", line 21, in call
raise e
File "/usr/local/lib/python3.10/dist-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
│ │ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_send at 0x7fc37043e3b0>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <fastapi.routing.APIRouter object at 0x7fc371728250>
└ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fc36c41d9c0>
File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 706, in call
await route.handle(scope, receive, send)
│ │ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_send at 0x7fc37043e3b0>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <function Route.handle at 0x7fc370a284c0>
└ APIRoute(path='/program.m3u', name='program', methods=['GET'])
File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
│ │ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_send at 0x7fc37043e3b0>
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
│ └ <function request_response..app at 0x7fc36c42bbe0>
└ APIRoute(path='/program.m3u', name='program', methods=['GET'])
File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 69, in app
await response(scope, receive, send)
│ │ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_send at 0x7fc37043e3b0>
│ │ └ <function _enable_span_for_middleware.._create_span_call.._sentry_receive at 0x7fc37043e7a0>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('10.0.0.122', 8081), 'c...
└ <starlette.responses.StreamingResponse object at 0x7fc3703717b0>
File "/usr/local/lib/python3.10/dist-packages/starlette/responses.py", line 266, in call
async with anyio.create_task_group() as task_group:
│ │ └ <anyio._backends._asyncio.TaskGroup object at 0x7fc370371630>
│ └ <function create_task_group at 0x7fc370e04d30>
└ <module 'anyio' from '/usr/local/lib/python3.10/dist-packages/anyio/init.py'>
File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 662, in aexit
raise exceptions[0]
└ [TypeError("'NoneType' object is not iterable")]
File "/usr/local/lib/python3.10/dist-packages/starlette/responses.py", line 269, in wrap
await func()
└ functools.partial(<bound method StreamingResponse.stream_response of <starlette.responses.StreamingResponse object at 0x7fc37...
File "/usr/local/lib/python3.10/dist-packages/starlette/responses.py", line 258, in stream_response
async for chunk in self.body_iterator:
│ │ └ <async_generator object iterate_in_threadpool at 0x7fc3703741c0>
│ └ <starlette.responses.StreamingResponse object at 0x7fc3703717b0>
└ b'#EXTM3U x-tvg-url=""\n'
File "/usr/local/lib/python3.10/dist-packages/starlette/concurrency.py", line 63, in iterate_in_threadpool
yield await anyio.to_thread.run_sync(_next, iterator)
│ │ │ │ └ <generator object generate_m3u at 0x7fc36c4ff7d0>
│ │ │ └ <function _next at 0x7fc370e55000>
│ │ └ <function run_sync at 0x7fc370dc0dc0>
│ └ <module 'anyio.to_thread' from '/usr/local/lib/python3.10/dist-packages/anyio/to_thread.py'>
└ <module 'anyio' from '/usr/local/lib/python3.10/dist-packages/anyio/init.py'>
File "/usr/local/lib/python3.10/dist-packages/anyio/to_thread.py", line 31, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
└ <function get_asynclib at 0x7fc370dc0700>
File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
return await future
└ <Future finished exception=TypeError("'NoneType' object is not iterable")>
File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 867, in run
result = context.run(func, *args)
│ │ │ └ (<generator object generate_m3u at 0x7fc36c4ff7d0>,)
│ │ └ <function _next at 0x7fc370e55000>
│ └ <method 'run' of '_contextvars.Context' objects>
└ <_contextvars.Context object at 0x7fc3703d0780>
File "/usr/local/lib/python3.10/dist-packages/starlette/concurrency.py", line 53, in _next
return next(iterator)
└ <generator object generate_m3u at 0x7fc36c4ff7d0>

File "/home/ubuntu/Streaming-Media-Server-Pro/app/plugins/a4gtv/tools.py", line 21, in generate_m3u
for i in gdata:
└ None

TypeError: 'NoneType' object is not iterable

WARNING 2023-01-05 15:23:38.926 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', '', 'wrong version number')])"))': /api/4504005849579520/store/
WARNING 2023-01-05 15:23:39.126 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', '', 'wrong version number')])"))': /api/4504005849579520/store/
WARNING 2023-01-05 15:23:39.329 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', '', 'wrong version number')])"))': /api/4504005849579520/store/
WARNING 2023-01-05 15:23:39.717 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', '', 'wrong version number')])"))': /api/4504005849579520/envelope/
WARNING 2023-01-05 15:23:39.911 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', '', 'wrong version number')])"))': /api/4504005849579520/envelope/
WARNING 2023-01-05 15:23:40.107 - sentry_sdk.integrations.logging:sentry_patched_callhandlers - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', '', 'wrong version number')])"))': /api/4504005849579520/envelope/

报错帮忙看看(解决了,原来是因为服务器没安置MySQL)

root@DS3617xs:/Streaming-Media-Server-Pro# python3.10 main.py
2022-11-04 04:00:27.038 | INFO | app.conf.config::58 - 配置加载中...
.Traceback (most recent call last):
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 386, in _make_request
self._validate_conn(conn)
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1042, in validate_conn
conn.connect()
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/connection.py", line 414, in connect
self.sock = ssl_wrap_socket(
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/util/ssl
.py", line 449, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/util/ssl
.py", line 493, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
File "/volume2/@appstore/python310/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/volume2/@appstore/python310/lib/python3.10/ssl.py", line 1071, in _create
self.do_handshake()
File "/volume2/@appstore/python310/lib/python3.10/ssl.py", line 1342, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/volume2/@appstore/python310/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
resp = conn.urlopen(
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
retries = retries.increment(
File "/volume2/@appstore/python310/lib/python3.10/site-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /382420058/owner/main/data (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Streaming-Media-Server-Pro/main.py", line 7, in
from app.api import app
File "/Streaming-Media-Server-Pro/app/api/init.py", line 16, in
from app.conf import config
File "/Streaming-Media-Server-Pro/app/conf/init.py", line 5, in
from .config import config
File "/Streaming-Media-Server-Pro/app/conf/config.py", line 113, in
idata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data",
File "/volume2/@appstore/python310/lib/python3.10/site-packages/requests/sessions.py", line 600, in get
return self.request("GET", url, **kwargs)
File "/volume2/@appstore/python310/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/volume2/@appstore/python310/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/volume2/@appstore/python310/lib/python3.10/site-packages/requests/adapters.py", line 563, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /382420058/owner/main/data (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')))

用docker部署的,底层是ubt,运行不起来

看您教程里写的Python和Docker二选一安装,我在ubt的docker上安装的:
docker pull 239144498/streaming
docker images
docker run -itd -v /home/assets:/code/app/assets -p 8080:8080 --restart=always --name server (这里输入上一步的IMAGE_ID)
http://ip:8080/docs
浏览器打开访问不了呢

配置文件加载中

默认只更改ip,其他没动,重新安装也这样
image
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 174, in _new_conn
conn = connection.create_connection(
File "/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py", line 95, in create_connection
raise err
File "/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py", line 85, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 386, in _make_request
self._validate_conn(conn)
File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 1042, in _validate_conn
conn.connect()
File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 358, in connect
self.sock = conn = self._new_conn()
File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f392b5729a0>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/requests/adapters.py", line 440, in send
resp = conn.urlopen(
File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 787, in urlopen
retries = retries.increment(
File "/usr/local/lib/python3.9/site-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='agit.ai', port=443): Max retries exceeded with url: /239144498/owner/raw/branch/master/data (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f392b5729a0>: Failed to establish a new connection: [Errno 110] Connection timed out'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 425, in main
run(app, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 447, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 68, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 76, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 448, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 5, in
from app.settings import PORT, localhost
File "/code/./app/settings.py", line 75, in
idata = eval(request.get("https://agit.ai/239144498/owner/raw/branch/master/data",
File "/code/./app/modules/request.py", line 23, in get
return self.request.get(url, headers=headers, proxies=self.proxies)
File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 542, in get
return self.request('GET', url, **kwargs)
File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 529, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 645, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.9/site-packages/requests/adapters.py", line 519, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='agit.ai', port=443): Max retries exceeded with url: /239144498/owner/raw/branch/master/data (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f392b5729a0>: Failed to establish a new connection: [Errno 110] Connection timed out'))

今天突然無法使用~附上BUG 是否解析出問題了? 連docker也是一樣 有重新pull過了

DEBUG 2022-12-04 16:34:36.744 - app.api:init_app - 日志系统已加载
INFO: Started server process [1080]
INFO: Waiting for application startup.
INFO 2022-12-04 16:34:36.815 - app.api:startup - 已开启定时任务
C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\apscheduler\util.py:436: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
return tzinfo.localize(dt)
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO: 192.168.1.1:59484 - "GET /channel.m3u8?fid=4gtv-4gtv001&hd=1080 HTTP/1.1" 500 Internal Server Error
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 407, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\fastapi\applications.py", line 270, in call
await super().call(scope, receive, send)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\starlette.py", line 325, in _sentry_patched_asgi_app
return await middleware(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\asgi.py", line 139, in _run_asgi3
return await self._run_app(scope, lambda: self.app(scope, receive, send))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\asgi.py", line 188, in _run_app
raise exc from None
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\asgi.py", line 183, in _run_app
return await callback()
^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\applications.py", line 124, in call
await self.middleware_stack(scope, receive, send)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware\errors.py", line 184, in call
raise exc
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware\errors.py", line 162, in call
await self.app(scope, receive, _send)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\starlette.py", line 223, in _sentry_exceptionmiddleware_call
await old_call(self, scope, receive, send)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware\exceptions.py", line 79, in call
raise exc
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\middleware\exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in call
raise e
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\routing.py", line 706, in call
await route.handle(scope, receive, send)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\routing.py", line 276, in handle
await self.app(scope, receive, send)
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\starlette\routing.py", line 66, in app
response = await func(request)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\integrations\fastapi.py", line 106, in _sentry_app
return await old_app(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\fastapi\routing.py", line 235, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\fastapi\routing.py", line 161, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\temp\Streaming-Media-Server-Pro\app\api\v2\endpoints\sgtv.py", line 67, in channel1
code = get.check(fid) # 檢查是否出错
^^^^^^^^^^^^^^
File "C:\temp\Streaming-Media-Server-Pro\app\plugins\a4gtv\utile.py", line 108, in check
code = self.updateonline(fid)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\temp\Streaming-Media-Server-Pro\app\plugins\a4gtv\utile.py", line 47, in updateonline
status_code, a6, a12, a1, msg = get4gtvurl(fid)
^^^^^^^^^^^^^^^
File "C:\temp\Streaming-Media-Server-Pro\app\plugins\a4gtv\endecrypt.py", line 24, in get4gtvurl
with request.post(url=url, headers=header, data=data, allow_redirects=True) as res:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\temp\Streaming-Media-Server-Pro\app\common\request.py", line 39, in post
return self.request.post(url, data=data, json=json, headers=headers, proxies=self.proxies, timeout=10, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 635, in post
return self.request("POST", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Charles\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 578, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.naihe.me', port=443): Read timed out. (read timeout=10)
INFO: 192.168.1.1:59490 - "GET /channel.m3u8?fid=4gtv-4gtv004&hd=1080 HTTP/1.1" 500 Internal Server Error

用docker 會出現 该ip已被程序拉黑,无法访问 解封禁规则https://github.com/239144498/Streaming-Media-Server-Pro/issues/

SystemExit: -1
�[1mINFO �[0m �[32m2022-12-05 13:50:46.090�[0m - �[36msentry_sdk.integrations.logging�[0m:�[36msentry_patched_callhandlers�[0m - �[1m5.180.44.141:38606 - "GET /channel.m3u8?fid=4gtv-4gtv070 HTTP/1.1" 500�[0m
�[32m�[1mSUCCESS �[0m �[32m2022-12-05 13:50:50.548�[0m - �[36mapp.plugins.a4gtv.endecrypt�[0m:�[36mget4gtvurl�[0m - �[32m�[1m4gtv-live050 216�[0m
�[31m�[1mERROR �[0m �[32m2022-12-05 13:50:50.548�[0m - �[36mapp.plugins.a4gtv.utile�[0m:�[36mupdateonline�[0m - �[31m�[1m该ip已被程序拉黑,无法访问�[0m
�[31m�[1mERROR �[0m �[32m2022-12-05 13:50:50.549�[0m - �[36mapp.plugins.a4gtv.utile�[0m:�[36mupdateonline�[0m - �[31m�[1m了解封禁规则https://github.com/239144498/Streaming-Media-Server-Pro/issues/14�[0m
�[31mERROR�[0m: Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "/usr/local/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/fastapi/applications.py", line 270, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 325, in _sentry_patched_asgi_app
return await middleware(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/asgi.py", line 139, in _run_asgi3
return await self._run_app(scope, lambda: self.app(scope, receive, send))
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/asgi.py", line 183, in _run_app
return await callback()
File "/usr/local/lib/python3.9/site-packages/starlette/applications.py", line 124, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.9/site-packages/starlette/middleware/errors.py", line 162, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 223, in _sentry_exceptionmiddleware_call
await old_call(self, scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.9/site-packages/starlette/middleware/exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 706, in call
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 66, in app
response = await func(request)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/fastapi.py", line 107, in _sentry_app
return await old_app(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/fastapi/routing.py", line 235, in app
raw_response = await run_endpoint_function(
File "/usr/local/lib/python3.9/site-packages/fastapi/routing.py", line 161, in run_endpoint_function
return await dependant.call(**values)
File "/code/./app/api/v2/endpoints/sgtv.py", line 67, in channel1
code = get.check(fid) # 檢查是否出错
File "/code/./app/plugins/a4gtv/utile.py", line 108, in check
code = self.updateonline(fid)
File "/code/./app/plugins/a4gtv/utile.py", line 66, in updateonline
exit(-1)
File "/usr/local/lib/python3.9/_sitebuiltins.py", line 26, in call
raise SystemExit(code)
SystemExit: -1
�[1mINFO �[0m �[32m2022-12-05 13:50:50.565�[0m - �[36msentry_sdk.integrations.logging�[0m:�[36msentry_patched_callhandlers�[0m - �[1m5.180.44.141:39098 - "GET /channel.m3u8?fid=4gtv-live050 HTTP/1.1" 500�[0m
�[32m�[1mSUCCESS �[0m �[32m2022-12-05 13:50:54.822�[0m - �[36mapp.plugins.a4gtv.endecrypt�[0m:�[36mget4gtvurl�[0m - �[32m�[1m4gtv-4gtv017 216�[0m
�[31m�[1mERROR �[0m �[32m2022-12-05 13:50:54.823�[0m - �[36mapp.plugins.a4gtv.utile�[0m:�[36mupdateonline�[0m - �[31m�[1m该ip已被程序拉黑,无法访问�[0m
�[31m�[1mERROR �[0m �[32m2022-12-05 13:50:54.824�[0m - �[36mapp.plugins.a4gtv.utile�[0m:�[36mupdateonline�[0m - �[31m�[1m了解封禁规则https://github.com/239144498/Streaming-Media-Server-Pro/issues/14�[0m
�[31mERROR�[0m: Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "/usr/local/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/fastapi/applications.py", line 270, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 325, in _sentry_patched_asgi_app
return await middleware(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/asgi.py", line 139, in _run_asgi3
return await self._run_app(scope, lambda: self.app(scope, receive, send))
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/asgi.py", line 183, in _run_app
return await callback()
File "/usr/local/lib/python3.9/site-packages/starlette/applications.py", line 124, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.9/site-packages/starlette/middleware/errors.py", line 162, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 223, in _sentry_exceptionmiddleware_call
await old_call(self, scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.9/site-packages/starlette/middleware/exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/starlette.py", line 130, in _create_span_call
return await old_call(app, scope, new_receive, new_send, **kwargs)
File "/usr/local/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 706, in call
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 66, in app
response = await func(request)
File "/usr/local/lib/python3.9/site-packages/sentry_sdk/integrations/fastapi.py", line 107, in _sentry_app
return await old_app(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/fastapi/routing.py", line 235, in app
raw_response = await run_endpoint_function(
File "/usr/local/lib/python3.9/site-packages/fastapi/routing.py", line 161, in run_endpoint_function
return await dependant.call(**values)
File "/code/./app/api/v2/endpoints/sgtv.py", line 67, in channel1
code = get.check(fid) # 檢查是否出错

一直报这个错

"�[1mGET /channel.m3u8?fid=4gtv-4gtv002&hd=720 HTTP/1.1�[0m" �[32m200 OK�[0m
�[31mERROR�[0m: Exception in ASGI application
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 404, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "/usr/local/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/fastapi/applications.py", line 269, in call
await super().call(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/applications.py", line 124, in call
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/middleware/errors.py", line 184, in call
raise exc
File "/usr/local/lib/python3.9/site-packages/starlette/middleware/errors.py", line 162, in call
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.9/site-packages/starlette/exceptions.py", line 93, in call
raise exc
File "/usr/local/lib/python3.9/site-packages/starlette/exceptions.py", line 82, in call
await self.app(scope, receive, sender)
File "/usr/local/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in call
raise e
File "/usr/local/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 670, in call
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 266, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/routing.py", line 68, in app
await response(scope, receive, send)
File "/usr/local/lib/python3.9/site-packages/starlette/responses.py", line 260, in call
await wrap(partial(self.listen_for_disconnect, receive))
File "/usr/local/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 662, in aexit
raise exceptions[0]
File "/usr/local/lib/python3.9/site-packages/starlette/responses.py", line 256, in wrap
await func()
File "/usr/local/lib/python3.9/site-packages/starlette/responses.py", line 245, in stream_response
async for chunk in self.body_iterator:
File "/usr/local/lib/python3.9/site-packages/starlette/concurrency.py", line 63, in iterate_in_threadpool
yield await anyio.to_thread.run_sync(_next, iterator)
File "/usr/local/lib/python3.9/site-packages/anyio/to_thread.py", line 31, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
File "/usr/local/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
return await future
File "/usr/local/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 867, in run
result = context.run(func, *args)
File "/usr/local/lib/python3.9/site-packages/starlette/concurrency.py", line 53, in _next
return next(iterator)
File "/code/./app/utile.py", line 133, in generatem3u8
self.check(fid, hd)
File "/code/./app/utile.py", line 104, in check
self.updateonline(fid, hd)
File "/code/./app/utile.py", line 68, in updateonline
start, seq, gap = genftlive(url)
File "/code/./app/common/tools.py", line 59, in genftlive
seq = re.findall("#EXT-X-MEDIA-SEQUENCE:(\d+)\n", data).pop()
IndexError: pop from empty list

这是什么情况啊

用docker佈署 出現錯誤 請問要如何解決? 用最新的2.5版

查看日志
�[32m2022-11-22 14:09:32.837�[0m | �[1mINFO �[0m | �[36mapp.conf.config�[0m:�[36m�[0m:�[36m61�[0m - �[1m配置加载中...�[0m
....Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 404, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 474, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 7, in
from app.api import app
File "/code/./app/api/init.py", line 16, in
from app.conf import config
File "/code/./app/conf/init.py", line 5, in
from .config import config
File "/code/./app/conf/config.py", line 128, in
edata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data4",
File "", line 1, in
NameError: name 'test' is not defined
�[32m2022-11-22 14:09:34.062�[0m | �[1mINFO �[0m | �[36mapp.conf.config�[0m:�[36m�[0m:�[36m61�[0m - �[1m配置加载中...�[0m
....Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 404, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 474, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 7, in
from app.api import app
File "/code/./app/api/init.py", line 16, in
from app.conf import config
File "/code/./app/conf/init.py", line 5, in
from .config import config
File "/code/./app/conf/config.py", line 128, in
edata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data4",
File "", line 1, in
NameError: name 'test' is not defined
�[32m2022-11-22 14:09:35.131�[0m | �[1mINFO �[0m | �[36mapp.conf.config�[0m:�[36m�[0m:�[36m61�[0m - �[1m配置加载中...�[0m
....Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 404, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 474, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 7, in
from app.api import app
File "/code/./app/api/init.py", line 16, in
from app.conf import config
File "/code/./app/conf/init.py", line 5, in
from .config import config
File "/code/./app/conf/config.py", line 128, in
edata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data4",
File "", line 1, in
NameError: name 'test' is not defined
�[32m2022-11-22 14:09:36.508�[0m | �[1mINFO �[0m | �[36mapp.conf.config�[0m:�[36m�[0m:�[36m61�[0m - �[1m配置加载中...�[0m
....Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 404, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 474, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 7, in
from app.api import app
File "/code/./app/api/init.py", line 16, in
from app.conf import config
File "/code/./app/conf/init.py", line 5, in
from .config import config
File "/code/./app/conf/config.py", line 128, in
edata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data4",
File "", line 1, in
NameError: name 'test' is not defined
�[32m2022-11-22 14:09:38.487�[0m | �[1mINFO �[0m | �[36mapp.conf.config�[0m:�[36m�[0m:�[36m61�[0m - �[1m配置加载中...�[0m
....Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 404, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 474, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 7, in
from app.api import app
File "/code/./app/api/init.py", line 16, in
from app.conf import config
File "/code/./app/conf/init.py", line 5, in
from .config import config
File "/code/./app/conf/config.py", line 128, in
edata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data4",
File "", line 1, in
NameError: name 'test' is not defined
�[32m2022-11-22 14:09:41.149�[0m | �[1mINFO �[0m | �[36mapp.conf.config�[0m:�[36m�[0m:�[36m61�[0m - �[1m配置加载中...�[0m
....Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 404, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 474, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 7, in
from app.api import app
File "/code/./app/api/init.py", line 16, in
from app.conf import config
File "/code/./app/conf/init.py", line 5, in
from .config import config
File "/code/./app/conf/config.py", line 128, in
edata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data4",
File "", line 1, in
NameError: name 'test' is not defined
�[32m2022-11-22 14:09:45.256�[0m | �[1mINFO �[0m | �[36mapp.conf.config�[0m:�[36m�[0m:�[36m61�[0m - �[1m配置加载中...�[0m
....Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 404, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 569, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 474, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 7, in
from app.api import app
File "/code/./app/api/init.py", line 16, in
from app.conf import config
File "/code/./app/conf/init.py", line 5, in
from .config import config
File "/code/./app/conf/config.py", line 128, in
edata = eval(request.get("https://raw.githubusercontent.com/382420058/owner/main/data4",
File "", line 1, in
NameError: name 'test' is not defined

docker部署后一直运行不了,报错

docker本地部署,mysql、redis,部署有段时间开始可以看的,最近一直报错。
2022-10-05 14:08:45.496 | INFO | app.settings::14 - 配置加载中...
2022-10-05 14:08:46.245 | INFO | app.settings::112 - 配置加载完成
2022-10-05 14:08:46.501 | INFO | app.modules.DBtools::13 - 检测redis连接
2022-10-05 14:08:46.503 | INFO | app.modules.DBtools::24 - redis已连接
2022-10-05 14:08:46.503 | INFO | app.modules.DBtools:init:38 - 检测mysql连接
Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 408, in main
run(
File "/usr/local/lib/python3.9/site-packages/uvicorn/main.py", line 576, in run
server.run()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 60, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/uvicorn/server.py", line 67, in serve
config.load()
File "/usr/local/lib/python3.9/site-packages/uvicorn/config.py", line 479, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.9/site-packages/uvicorn/importer.py", line 21, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/code/./app/main.py", line 9, in
from app.routers import app
File "/code/./app/routers.py", line 12, in
from app.modules.DBtools import DBconnect
File "/code/./app/modules/DBtools.py", line 81, in
DBconnect = DB()
File "/code/./app/modules/DBtools.py", line 40, in init
self.mysql = get_mysql_conn()
File "/code/./app/modules/dbMysql.py", line 120, in get_mysql_conn
return MySQLConnect(cursorclass, mysql_config)
File "/code/./app/modules/dbMysql.py", line 18, in init
self.connection = pymysql.connect(
File "/usr/local/lib/python3.9/site-packages/pymysql/connections.py", line 353, in init
self.connect()
File "/usr/local/lib/python3.9/site-packages/pymysql/connections.py", line 633, in connect
self._request_authentication()
File "/usr/local/lib/python3.9/site-packages/pymysql/connections.py", line 932, in _request_authentication
auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
File "/usr/local/lib/python3.9/site-packages/pymysql/_auth.py", line 265, in caching_sha2_password_auth
data = sha2_rsa_encrypt(conn.password, conn.salt, conn.server_public_key)
File "/usr/local/lib/python3.9/site-packages/pymysql/_auth.py", line 143, in sha2_rsa_encrypt
raise RuntimeError(
RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

1

1

什么情况下会导致异常?

我用docker部署在vps,最简化部署,没有装mysql、redis等,开始时一切运行正常。生成的播放列表我是共享在github上的,第2天偶然发现vps流量异常高,几个小时就跑了一百多G流量,开始以为是用我列表的人多而已,但是检查发现已无法正常使用,只要有一个播放连接请求进来,vps的incomg就把60M带宽占满了,docker stats显示该容器的内存占用也不停升高,网页端也没法播放。把容器删除重建,甚至把镜像文件也删除重拉,仍然是一样的现象,换一台其他的vps安装部署则正常。难道是触发了4GTV服务器端的限制?
docker stats

log

updateonline函数报错

后端日志app.api.a4gtv.utile:updateonline 报错
经过排查,是因为第70行
cur.setex(fid, last - start, str([url, last, start, seq, gap]))
第二个参数需要是整数,但是start是小数,导致last - start也是小数,导致报错。
修改为
cur.setex(fid, int(last - start), str([url, last, start, seq, gap]))
解决了报错问题

generate_url 函数报错

File "/code/./app/plugins/a4gtv/utile.py", line 224, in backtasklocal
herf = generate_url(fid, host, hd, begin + (i * get.para[fid]['a7']), seq + i, url)
TypeError: generate_url() takes 5 positional arguments but 6 were given

需要去掉hd参数

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.