PT-Plugin-Plus
PT-Plugin-Plus copied to clipboard
群晖 DSM 7.0 API 发生改动
- PT 助手版本: 栽培者 2021, 版本 v1.5.1
- PT 助手安装方式:zip
- 浏览器名称及版本:chrome
- 浏览器是否安装了其他插件:yes
- 停用其他插件后是否正常工作:no
- 问题描述:
Synology DSM 7.0 API broked!
- 相关截图:
失败的 URL:
http://x.x.x.x:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=login&account=myname&passwd=mypassword&session=DownloadStation&format=sid

成功的 URL: (version changed from 2 to 7)
http://x.x.x.x:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=7&method=login&account=myname&passwd=mypassword&session=DownloadStation&format=sid

- 重现步骤:
使用 DSM 7.0 即可复现。7.0 在官网可以免费试用,https://demo.synology.cn/zh-cn/dsm#dsm70beta
I found version in synologyDownloadStation init.ts is a hard-code value 2.
I changed this hard-code value to 7 and reimport decompressed crt. then it works.

发送辅种任务仍然失败
改成3试试?7过高了
curl "https://b74.dsm7demo.synology.com:5001/webapi/query.cgi" --data-raw "query=all&api=SYNO.API.Info&method=query&version=1"
的结果显示
"SYNO.DownloadStation.Task":{"maxVersion":3,"minVersion":1,"path":"DownloadStation/task.cgi"}
即我们使用的API最高支持才到3
但 Auth 这个实在有些说不过去 {"SYNO.API.Auth":{"maxVersion":7,"minVersion":1,"path":"entry.cgi"}
因为看API返回是正常的,但demo环境我这边无法进行登录测试。

改成 3 了,测试服务器连接可以的,但是发送辅种失败。
emmm,因为官网的demo,并没有给用户名和密码信息,且本人并没有DSM 7环境,所以我也没办法进行进一步的测试。
那目前我能想到的比较好的方法是sid获取走version:3或者更高的接口,推送还是走version:2 的原始接口。
即不改动 init.js中写死的 this.version = 2,而是只改动 getSessionId()部分提交的version。
Index: resource/clients/synologyDownloadStation/init.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/resource/clients/synologyDownloadStation/init.js b/resource/clients/synologyDownloadStation/init.js
--- a/resource/clients/synologyDownloadStation/init.js (revision 61365938efaf49b892118c0776d6477e5dec1329)
+++ b/resource/clients/synologyDownloadStation/init.js (date 1612191034762)
@@ -18,7 +18,7 @@
*/
getSessionId() {
return new Promise((resolve, reject) => {
- let url = `${this.options.address}/webapi/auth.cgi?api=SYNO.API.Auth&version=${this.version}&method=login&account=${encodeURIComponent(this.options.loginName)}&passwd=${encodeURIComponent(this.options.loginPwd)}&session=DownloadStation&format=sid`;
+ let url = `${this.options.address}/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=login&account=${encodeURIComponent(this.options.loginName)}&passwd=${encodeURIComponent(this.options.loginPwd)}&session=DownloadStation&format=sid`;
$.ajax({
url,
timeout: PTBackgroundService.options.connectClientTimeout,
但是我不清楚具体可行性,如果不行的话,我这边也暂时没有精力将 DS 的 API 切到新版的 entry.cgi 上
据下述两条链接的测试,这样操作应该是可行的:
- https://github.com/Sonarr/Sonarr/issues/3943#issuecomment-765066039
- https://community.synology.com/enu/forum/20/post/139113?reply=440990
我测试了一下 getSessionId 使用 version=3,其他用 2。测试连接没有问题呢,下载种子失败。
错误如图:

了解了, 鉴于 DSM 7 还处于beta版本,且 DownloadStation 对应文档未有更新说明, 加之此错误码过于宽泛,我们无法明确DSM7下的为什么原有方法无法走通, 我还是想等等社区看看其他人的解决方法。
在我们这边尽可能将方法切换到 entry.cgi 前,建议:
- 您工单向Synology技术支持反馈对应问题,这更应该是他们的兼容问题。
- 使用Docker下的其他客户端。
目前最简便的方法,卸载新版DownloadStation 手动安装 上一个版本 官网下载的spk文件,不放心可以去官网下载 链接: https://pan.baidu.com/s/1vpu5LM9NIJ_s46wxpnOKFA 提取码: jysy
其他一些repo关于 DSM7和部分较高版本的DS 无法推送的讨论,请参阅:
https://github.com/seansfkelley/synology-download-manager/issues/166 https://github.com/seansfkelley/synology-download-manager/issues/177 https://github.com/Sonarr/Sonarr/issues/4388 https://github.com/pymedusa/Medusa/issues/9366
download station不好用啊,用docker装qb不香嘛?DSM 7用的很好
download station不好用啊,用docker装qb不香嘛?DSM 7用的很好
感觉download station很好用,跨平台有app,还有各种浏览器插件
请于 #964 报告DSM7以及较老版本的适配情况。
SYNO.API.Auth对应的version取6可能更合适?
根据手册,
https://cndl.synology.cn/download/Document/Software/DeveloperGuide/Os/DSM/All/enu/DSM_Login_Web_API_Guide_enu.pdf
version=6 is recommended
SYNO.API.Auth对应的version取6可能更合适? 根据手册, cndl.synology.cn/download/Document/Software/DeveloperGuide/Os/DSM/All/enu/DSM_Login_Web_API_Guide_enu.pdfversion=6is recommended
有点过,version=3 已经能满足我们所需要的所有参数。如果能用的话,没有必要强行推高到 version=6
另外也要考虑非DSM7的用户使用。
目前最简便的方法,卸载新版DownloadStation 手动安装 上一个版本 官网下载的spk文件,不放心可以去官网下载 链接: https://pan.baidu.com/s/1vpu5LM9NIJ_s46wxpnOKFA 提取码: jysy
您好,7.1.1DSM提示套件格式不正确了。 请教一下,version=6 这个配置文件是在哪里的?
修改版本号后DSM7.1.1,能添加ysnology download station,但是无法推送种子,我看了前面的issues进展,这么久了都没有解决。不知道有没有成功的朋友,指点一下。