cshuaimin/video-funnel

aiohttp可能又改了。。。

Closed this issue · 30 comments

  • Listening at port 8080 ...
    Error handling request
    Traceback (most recent call last):
    File "/root/.local/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 418, in start
    resp = await task
    File "/root/.local/lib/python3.6/site-packages/aiohttp/web_app.py", line 458, in _handle
    resp = await handler(request)
    File "/root/.local/lib/python3.6/site-packages/video_funnel/init.py", line 85, in handler
    del request.headers['Host']
    TypeError: 'multidict._multidict.CIMultiDictProxy' object does not support item deletion

嗯,这里直接修改是我的不对,应该做个复制的。另外还有些改动,过几天有时间一起修了吧。

可以用requirement限制版本的吧。。。我只会C++,Python不太了解

我想给它写个php的前端,所以能不能给一个接口,直接php上shell_exec太危险了

可以用requirement限制版本的吧

是可以的,但这个项目练手的成分更大,所以尽量跟着最新的版本走吧~

能不能给一个接口

是要在 php 中调用 Python 函数吗?我不会 php,不知道能不能这么实现。。还是说 REST API 这种接口呢Q_Q,你还不如用 php 自己去实现,毕竟没什么复杂的地方,就是个 HTTP 框架的练手项目。

我觉得这个程序 php 和 Python 都不是最理想的实现语言,最好是用 js 写成浏览器插件之类的,播放视频时点一下就能加速了~(可惜俺不会Q_Q)

Sorry..手误

除去浏览器插件,还有一个办法,就是写成代理,让浏览器用这个代理播放视频。本软件如果检测到视频就加速,其他的直连。这样就优雅多了。过几天我准备试试。

所以现在我应该怎么修改来使用。。。指定0.2.5没用啊

所以现在我应该怎么修改来使用。。。指定0.2.5没用啊

0.2.10 可以

所以现在我应该怎么修改来使用。。。指定0.2.5没用啊

0.2.10 可以
哪有这个版本。。。。
@vcheckzen

@cshuaimin 所以pypi不更新吗。。。

@cshuaimin 所以pypi不更新吗。。。

记错了,抱歉,是 2.3.10

python -m pip install --upgrade pip
pip uninstall aiohttp
pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple aiohttp==2.3.10

@Zxilly 我的系统(Manjaro)前几天滚挂了,经过一番折腾后虽然系统装好了,但各种环境还没搞好,先按照楼上的办法用吧~

@Zxilly 我的系统(Manjaro)前几天滚挂了,经过一番折腾后虽然系统装好了,但各种环境还没搞好,先按照楼上的办法用吧~

巧了,碰到作者,正好有个问题

这个 onedrive 视频链接,每次播放到 1 小时左右,vf 就显示 401,有可能是什么原因那

@vcheckzen {"error_description":"Invalid JWT token. The token is expired."}
话说 OneDrive 不限速吧?没必要用 vf。
1 个小时左右出错我也不知道是什么原因,要是立即出错还好,这种的最玄学了

@Zxilly {"error_description":"Invalid JWT token. The token is expired."}
话说 OneDrive 不限速吧?没必要用 vf。
1 个小时左右出错我也不知道是什么原因,要是立即出错还好,这种的最玄学了

The access token has expired. It's valid from '3/3/2019 6:16:37 AM' and to '3/3/2019 7:16:37 AM'.

限速的,在线播放很卡。看来是 token 失效了,不知道有没有办法延长

噢我明白了是 token 失效了导致的 401?

用 vf 播放限速的 OneDrive 视频有效果吗?

噢我明白了是 token 失效了导致的 401?

我猜的,上面写 token 刚好 1h,而播放到 1h 多点(缓冲了几分钟), vf 就会 401

用 vf 播放限速的 OneDrive 视频有效果吗?

有效果,直接播放卡成 ppt ,用了 vf 一般能缓冲 4min

啥意思,每 4 分钟就要卡一下吗。。

啥意思,每 4 分钟就要卡一下吗。。

不是,是 mpv 显示 cached 4 min。现在用 vf 可以流畅观看,但是播放到 1h,vf 就会报 401,然后 mpv 就退出了,应该是 token 过期的原因

噢,明白了。

另外这个 issue 重新打开吧,等到跟上最新的 aiohttp 了再关。

我不懂 python,请问运行 vf original_url,如果 original_url 返回 302,location 是 redirected_url,那么 vf 下载每个(第二个以后) block 时,是请求 original_url 再跳转到 redirected_url,还是直接请求 redirected_url

目前是请求 original_url 再跳转到 redirected_url 的。这貌似也是个优化,我下个版本加上。

目前是请求 original_url 再跳转到 redirected_url 的。这貌似也是个优化,我下个版本加上。

😂,刚好现在这版的逻辑符合我,初步打算开代理刷新 onedrive token 再 302,然后 vf 打开代理链接,这样就能一直观看了。你优化吧,我一直用这版就行,哈哈

唉你这个思路好啊,那我再加个开关。

唉你这个思路好啊,那我再加个开关。

好的,万分感谢

我发现即使正在下载一个 block,如果 token 到期,vf 会停止下载,而 mpv 就退出了。并且我用 mpv 不能快进,用 vlc 的话,vf 里不断出现 cancelled ,缓冲不了。如果想让 vf 收到 401 时再重试几次可以吗,可以的话要改什么地方那

逻辑上来说 401 这种客户端错误是不会重试的,只有网络错误才会重试。但你这个刷新 token 的却恰恰需要此功能。。现在重构的这个版本我打算让碰到 401 就退出的,你看能不能通过重新打开或者什么的办法来?

不能快进的问题我没碰到过,有时间 debug 一下看看吧。

这种逻辑确实不太合理,我只是想改着自己用,想着改源码可能简单点,哈哈

我把 4xx 的 raise 注释掉,现在不会停止了,真是暴殄天物,哈哈

目前已经支持最新的 aiohttp。