Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alist V3驱动挂载Aliyundrive驱动目录后,阿里云盘视频无法在线播放 #4241

Closed
4 tasks done
everstu opened this issue Apr 25, 2023 · 16 comments
Closed
4 tasks done
Labels
bug Something isn't working

Comments

@everstu
Copy link

everstu commented Apr 25, 2023

Please make sure of the following things

  • I have read the documentation.
  • I'm sure there are no duplicate issues or discussions.
  • I'm sure it's due to alist and not something else(such as Dependencies or Operational).
  • I'm sure I'm using the latest version

Alist Version / Alist 版本

v3.16.0

Driver used / 使用的存储驱动

aliyundrive open/alist V3

Describe the bug / 问题描述

通过Alist v3挂载本机Alist aliyundrive open的目录时,无法播放Alist_v3挂载的阿里云盘视频。

原因分析:
如下图,因为是通过provider来判断是否需要用aliyun video预览,所以导致V3方式挂载阿里云盘视频无法播放。

image

Reproduction / 复现链接

公网IP,无法分享出来。
直接用Alist_V3挂载aliyundrive open挂载的目录必现。

Logs / 日志

No response

@everstu everstu added the bug Something isn't working label Apr 25, 2023
@everstu everstu changed the title 挂载Alist V3阿里云盘视频无法在线播放 Alist V3驱动挂载Aliyundrive驱动目录后,阿里云盘视频无法在线播放 Apr 25, 2023
@coldnight9
Copy link

一样的问题

@ZXiangQAQ
Copy link

稍微看了下源码,大体应该是这个逻辑:
1. 前端post /fs/other
2. 后端根据post的path请求参数,拿到 driver 的某个实现
3. 断言走 Other(ctx context.Context, args model.OtherArgs) (interface{}, error) 接口
4. 接口根据 method 参数,处理具体逻辑

目前看 Alist v3 没有实现 Other 接口,可以看看错误回复中是不是有 not implement 字样,验证下上面思路是不是对的

@everstu
Copy link
Author

everstu commented Apr 26, 2023

稍微看了下源码,大体应该是这个逻辑: 1. 前端post /fs/other 2. 后端根据post的path请求参数,拿到 driver 的某个实现 3. 断言走 Other(ctx context.Context, args model.OtherArgs) (interface{}, error) 接口 4. 接口根据 method 参数,处理具体逻辑

目前看 Alist v3 没有实现 Other 接口,可以看看错误回复中是不是有 not implement 字样,验证下上面思路是不是对的

应该是这个问题,通过V3挂载阿里云Open被认为是v3驱动了,所以没有通过aliyun video播放器来预览,导致无法播放视频。

@ZXiangQAQ
Copy link

因为我没尝试过 alist v3 套 aliyundrive open ,所以不清楚前端是什么样的,目前都是我摸鱼时看源码脑测的,如果视频预览走了 [aliyun_video] (https://github.com/alist-org/alist-web/blob/3eca3be8977838d5ae1765955a5757678eef04af/src/pages/home/previews/aliyun_video.tsx) 这个逻辑就应该会是上面的流程了,最好是能提供报错时,预览视频调用的具体http接口,以及前端报错和后端日志,方便定位

@everstu
Copy link
Author

everstu commented Apr 26, 2023

因为我没尝试过 alist v3 套 aliyundrive open ,所以不清楚前端是什么样的,目前都是我摸鱼时看源码脑测的,如果视频预览走了 [aliyun_video] (https://github.com/alist-org/alist-web/blob/3eca3be8977838d5ae1765955a5757678eef04af/src/pages/home/previews/aliyun_video.tsx) 这个逻辑就应该会是上面的流程了,最好是能提供报错时,预览视频调用的具体http接口,以及前端报错和后端日志,方便定位

后台接口没报错,只是前端视频在线播放页面走的video播放器,没有匹配上aliyun video 播放器,所以无法在线播放。

用AlistV3挂载AliyundriveOpen这个问题必现。

@ZXiangQAQ
Copy link

ZXiangQAQ commented Apr 26, 2023

刚刚我测试了一下,使用 docker 启动了 2 个 alist,第一个使用 AliyundriveOpen,第二个使用 alist v3,并设置为第一个的地址和token,测试是没问题的,走的 /fs/get 接口,是我的测试方法有问题么

{
    "code":200,
    "message":"success",
    "data":{
        "name":"Nahida.mp4",
        "size":16202816,
        "is_dir":false,
        "modified":"2023-04-26T05:40:58.95Z",
        "sign":"",
        "thumb":"https://cn-beijing-data.aliyundrive.net/*******",
        "type":2,
        "raw_url":"https://cn-beijing-data.aliyundrive.net/*******",
        "readme":"",
        "provider":"AList V3",
        "related":null
    }
}

@everstu
Copy link
Author

everstu commented Apr 26, 2023

刚刚我测试了一下,使用 docker 启动了 2 个 alist,第一个使用 AliyundriveOpen,第二个使用 alist v3,并设置为第一个的地址和token,测试是没问题的,走的 /fs/get 接口,是我的测试方法有问题么

{ "code":200, "message":"success", "data":{ "name":"Nahida.mp4", "size":16202816, "is_dir":false, "modified":"2023-04-26T05:40:58.95Z", "sign":"", "thumb":"https://cn-beijing-data.aliyundrive.net/", "type":2, "raw_url":"https://cn-beijing-data.aliyundrive.net/", "readme":"", "provider":"AList V3", "related":null } }

你的第二个V3挂载的可以在线预览视频吗?

获取列表并没有什么问题,就是视频在线播放会出问题。

@ZXiangQAQ
Copy link

刚刚我测试了一下,使用 docker 启动了 2 个 alist,第一个使用 AliyundriveOpen,第二个使用 alist v3,并设置为第一个的地址和token,测试是没问题的,走的 /fs/get 接口,是我的测试方法有问题么
{ "code":200, "message":"success", "data":{ "name":"Nahida.mp4", "size":16202816, "is_dir":false, "modified":"2023-04-26T05:40:58.95Z", "sign":"", "thumb":"https://cn-beijing-data.aliyundrive.net/", "type":2, "raw_url":"https://cn-beijing-data.aliyundrive.net/", "readme":"", "provider":"AList V3", "related":null } }

你的第二个V3挂载的可以在线预览视频吗?

可以预览,v3 驱动走 /api/fs/list 获取接口,走 /api/fs/get 预览

@everstu
Copy link
Author

everstu commented Apr 26, 2023

是不是特定的类型不能播放?我现在是mkv的视频无法播放。

mkv:有声音,无图像。
mp4:正常

@ZXiangQAQ
Copy link

是不是特定的类型不能播放?我现在是mkv的视频无法播放。

mkv:有声音,无图像。 mp4:正常

前端 F12 看看 console 里有啥错误,可能是前端播放器的兼容性问题

@everstu
Copy link
Author

everstu commented Apr 26, 2023

是不是特定的类型不能播放?我现在是mkv的视频无法播放。

前端 F12 看看 console 里有啥错误,或者接口有没有错误,后端也看看日志,只说无法播放,没法定位问题

没有报错,一切表现正常,我目前发现我挂载盘里所有的MKV格式视频都无法正常播放,有声音无图像,mp4格式正常播放,估计就是前端播放器不支持mkv。

@tshu-w
Copy link

tshu-w commented Jun 25, 2023

使用 Safari 无法播放可以参考:https://alist.nn.ci/zh/faq/why.html#为什么我不能预览视频或音频文件 ,使用 IINA 可以。

@carolcoral
Copy link

是不是特定的类型不能播放?我现在是mkv的视频无法播放。

前端 F12 看看 console 里有啥错误,或者接口有没有错误,后端也看看日志,只说无法播放,没法定位问题

没有报错,一切表现正常,我目前发现我挂载盘里所有的MKV格式视频都无法正常播放,有声音无图像,mp4格式正常播放,估计就是前端播放器不支持mkv。

一样的问题,最新版本,怎么解决呢

@everstu
Copy link
Author

everstu commented Dec 14, 2023

是不是特定的类型不能播放?我现在是mkv的视频无法播放。

前端 F12 看看 console 里有啥错误,或者接口有没有错误,后端也看看日志,只说无法播放,没法定位问题

没有报错,一切表现正常,我目前发现我挂载盘里所有的MKV格式视频都无法正常播放,有声音无图像,mp4格式正常播放,估计就是前端播放器不支持mkv。

一样的问题,最新版本,怎么解决呢

我目前还没有解决。

@carolcoral
Copy link

是不是特定的类型不能播放?我现在是mkv的视频无法播放。

前端 F12 看看 console 里有啥错误,或者接口有没有错误,后端也看看日志,只说无法播放,没法定位问题

没有报错,一切表现正常,我目前发现我挂载盘里所有的MKV格式视频都无法正常播放,有声音无图像,mp4格式正常播放,估计就是前端播放器不支持mkv。

一样的问题,最新版本,怎么解决呢

我目前还没有解决。

好吧,可以确认确实是alist某些时候不支持mkv格式,我尝试使用 safari、chrome、windows上的chrome、edge,有些mkv可以打开,大部分的mkv不能播放,点击本地播放器例如potplayer、infuse是可以正常播放的

@github-actions github-actions bot mentioned this issue Sep 12, 2024
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants