HBTech's Blog
HBTech's Blog
超星学习通云盘API不完全统计

因为之前疫情在家上网课需要用到学习通,意外发现了这个宝藏网盘。这个网盘每个帐号有100G的空间,而且上传下载几乎不限速。尽管空间有点小,但是可以通过自己创建一个课程,将文件存放至“资料”栏目,实现无限空间。

存放在超星学习通的云盘的每一个文件都会有一个唯一的 objectid 参数和 node 参数。objectid 参数由32位的数字和小写字母组成,不包含大写字母,猜测可能是由某种哈希算法生成;node 参数为18位的纯数字,猜测可能是某文件存放在服务器上的顺序,或者是某种时间戳,因为发现该参数的值会因上传的文件时间靠后而增加。文件的这两个参数可以在部分学习通网站内通过审查元素查看,也可根据文件的链接查看。

下面列出超星云盘目前(2020-11-15)所找到的API。基本上都是不需要验证登录的,如有会标明。下方的 API 链接若不是 https 开头则说明该 API 不支持 HTTPS 。

这些API随时可能失效。

2021-01-03 UPDATE: 免登录上传已失效
2021-04-04 UPDATE: 部分直链、预览 API 失效或需要加鉴权参数才能使用
2021-04-08 UPDATE: 图片外链检测referer,失效

直链API

API 1

GET https://d0.ananas.chaoxing.com/download/[objectid]?fn=[file_name]&at_=[at]&ak_=[ak]&ad_=[ad]

[objectid] 必选参数
[file_name] 必选参数,但可以置空。定义返回的下载文件名,不包括后辍名。置空时返回文件原始名称
[at] [ak] [ad] 这三个应该是鉴权参数,理论上在错误或者置空时将不能下载,但目前(2021-04-04)测试发现,对于某些文件即使置空也可正常下载(非常玄学)

注:可以置空表示链接的访问形式可以是 http://d0.ananas.chaoxing.com/download/[objectid]?at_=&ak_=&ad_=&fn= ,但不能是 https://d0.ananas.chaoxing.com/download/[objectid] ,后面的一串 ?at_=&ak_=&ad_=&fn= 必须出现。

API类型 直链下载
referer检查 可留空但不能为非超星旗下域名,留空时会检测user-agent
示例http://d0.ananas.chaoxing.com/download/2bc23d896acecb81b7e56b6d9b0c32ae?at_=&ak_=&ad_=&fn=

API 2 疑似已失效,打开后页面空白

GET http://cloud.ananas.chaoxing.com/view/fileviewDownload?objectId=[objectid]

[objectid] 必选参数
API类型 直链下载,但不返回Content-Length,只能单线程下载
referer检查 不检查
示例http://cloud.ananas.chaoxing.com/view/fileviewDownload?objectId=fdafb3426743c2c460dd0843a4ba3e53

API 3

GET https://dl-ans.chaoxing.com/download/[objectid]?fn=[file_name]&at_=[at]&ak_=[ak]&ad_=[ad]

参数说明同 API1 ,不再赘述

API 4 会检测referer,已失效

GET https://p.ananas.chaoxing.com/star3/[img_size]/[objectid][img_type]

[img_size] 必选参数,设置为origin时返回原图大小,设置为[width]_[height]c时返回[width]×[height]大小的图片,若不符合原图比例,图片将被裁剪
[objectid] 必选参数
[img_type] 可选参数,定义返回的图片类型,可选.jpg .png等,留空返回原图类型。
API类型 图片直链
文件类型 仅限图片文件,非图片文件返回500错误
referer检查 不检查,可作为图床链接 2021-04-08 UPDATE: 会检查
示例https://p.ananas.chaoxing.com/star3/origin/2bc23d896acecb81b7e56b6d9b0c32ae.jpg

logo

预览,分享页API

API 5

GET https://pan-yz.chaoxing.com/external/m/file/[node/objectid]?name=[file_name]

[node/objectid] 必选参数,node或者objectid均可
[file_name] 可选参数,定义预览界面显示的文件名,下载时后辍名会被忽略。留空显示原文件名
API类型 文件分享页
文件类型 任意类型
referer检查 不检查
登录检查 检查,需要登录后才能查看
示例 以下两个链接指向同一个文件
https://pan-yz.chaoxing.com/external/m/file/335471770949423104
https://pan-yz.chaoxing.com/external/m/file/785a94b84d788b065785323776848a45

API 6

GET http://cloud.ananas.chaoxing.com/view/fileview?objectid=[objectid]

[objectid] 必选参数
API类型 文件分享页。视频文件仅可预览,不提供下载选项
文件类型 任意类型
referer检查 不检查
示例1 视频文件,仅提供预览,点击播放后跳转至被学习通压缩过的视频直链
http://cloud.ananas.chaoxing.com/view/fileview?objectid=785a94b84d788b065785323776848a45
示例2 其它文件,只有下载选项(下载选项指向的链接其实就是 API2 ,疑似失效)
http://cloud.ananas.chaoxing.com/view/fileview?objectid=6ffa14b2501249c38a7c15b64f4dbbe9

API 7

GET https://pan-yz.chaoxing.com/screen/file_[objectid]

[objectid] 必选参数
API类型 文档预览页,图片形式。无下载选项
文件类型 仅限文档
referer检查 不检查,可通过使用<iframe>标签应用到自己的网站中
示例 https://pan-yz.chaoxing.com/screen/file_6ffa14b2501249c38a7c15b64f4dbbe9

API 8

GET https://pan-yz.chaoxing.com/preview/showpreview_[node].html

[node] 必选参数
API类型 视频,音频,图片,文档预览页,无下载选项。
文件类型 仅限视频,音频,图片,文档类型
referer检查 不检查,可通过使用<iframe>标签应用到自己的网站中
User-Agent检查 当文件类型为音频或视频时,若为移动设备则重定向至压缩过的文件直链(使用除了 Android 设备以外的移动设备 UA 均提示403错误,可能是学习通的bug),PC 则出现 html5 播放器(偶现 Flash 播放器)。无论是什么 UA ,图片类型均会重定向至 imageproxy.chaoxing.com 域名开头的链接,文档类型重定向至 API 7 形式的链接。
示例1 音频文件预览,音质有压缩
https://pan-yz.chaoxing.com/preview/showpreview_534549815865073664.html
示例2 视频文件预览,分辨率、码率等有压缩(疑似已失效)
https://pan-yz.chaoxing.com/preview/showpreview_534740747284545536.html
示例3 图片文件预览,画质被压缩
https://pan-yz.chaoxing.com/preview/showpreview_534742315874480128.html

API 9

GET https://pan-yz.chaoxing.com/preview/objectshowpreview.html?puid=[puid]&objectid=[objectid]

[puid] 必选参数,理论上与用户相关联,实际上是一个大于0的数字即可
[objectid] 必选参数
API类型 功能与 API 8 完全一致(但视频预览仍可用,未失效),只不过参数为 objectid 而非 node
文件类型 仅限视频,音频,图片,文档类型

API 10 已失效

GET https://mooc1-1.chaoxing.com/coursedata/toPreview?courseId=[courseId]&dataId=[dataId]&objectId=[objectid]

[courseId] 非必要参数,为文件所在的课程ID
[dataId] 可选参数,为文件添加到课程资料时的Data ID
API类型 添加到课程资料后产生的文件预览页,dataId正确填写时有下载按钮。文档,视频,音频、图片等文件可以在线预览,其他类型文件跳转到下载直链
文件类型 任意类型
referer检查 不检查,但若跳转至直链下载则检查

上传API

API 11 已失效

POST https://notice.chaoxing.com/pc/files/uploadNoticeFile

参数{attrFile: [文件]}
API类型 上传文件
文件类型 任意文件,大小须小于 200M
referer检查 不检查
Python代码示例

import requests
def upload2cx(path):
    file = open(path, 'rb')
    data = {'attrFile': file}
    respond = requests.post(url="https://notice.chaoxing.com/pc/files/uploadNoticeFile", files=data).text
    return respond
print(upload2cx(r"replace/your/file/path/here"))

返回参数示例 返回的链接默认以 http 开头,均可自行替换成 https 使用。

{
    "att_file": {
        "att_clouddisk": {
            "size": 53753,
            "fileSize": "52.5 KB",
            "isfile": true,
            "modtime": 1605419663715,
            "parentPath": "/logo.png",
            "icon": "http://p.ananas.chaoxing.com/star3/origin/bc9e7b6bae5286fa1202badf7c0d75bd.png",
            "name": "has.png",
            "downPath": "http://d0.ananas.chaoxing.com/download/2bc23d896acecb81b7e56b6d9b0c32ae",
            "shareUrl": "http://cloud.ananas.chaoxing.com/view/fileview?objectid=2bc23d896acecb81b7e56b6d9b0c32ae",
            "suffix": "png",
            "fileId": "2bc23d896acecb81b7e56b6d9b0c32ae"
        },
        "attachmentType": 18
    },
    "type": "img",
    "url": "http://p.ananas.chaoxing.com/star3/origin/2bc23d896acecb81b7e56b6d9b0c32ae.png?rw=250&rh=250&_fileSize=53753&_orientation=1",
    "status": true
}

其它API

API 12

GET https://pan-yz.chaoxing.com/thumbnail/origin/[objectid]

[objectid] 必选参数
API类型 跳转至视频文件的预览图直链
文件类型 仅限压缩成功的视频文件,即刚上传的视频可能无法获取
referer检查 不检查
示例 https://pan-yz.chaoxing.com/thumbnail/origin/a1e56b11f7bef221d462a6f0645103ec

HBTech's Blog

超星学习通云盘API不完全统计
因为之前疫情在家上网课需要用到学习通,意外发现了这个宝藏网盘。这个网盘每个帐号有100G的空间,而且上传下载几乎不限速。尽管空间有点小,但是可以通过自己创建一个课程,将文件存放至…
扫描二维码继续阅读
2020-11-13