若 HTTP 状态码为 401 则表示需要输入密码。密码以 Cookie 发送,内容为 Password=xxx,其中 xxx 是明文使用 CryptoJS.SHA512 哈希后得到。如 测试123 哈希后将变成 5e6959d159de40319501fb63c91e2bb939f1ae383fe9aaa56f5d9367b91502e620372fbfdc8311fec98a34c50127141ac1a8dd0bfab5792ad13741723b880f9d。为了增强安全性,如果可能推荐使用 HTTPS。

Download/{*Path}

直链下载指定的文件。此时的 MIME 类型为 application/octet-stream
可用的查询字符串:
  • Timeout:默认为 10,表示等待文件处理的秒数。若设置为 -1 则将无限制地等下去。
返回 HTTP 状态码:
  • 200 & 206 & 304:传输文件/断点续传。
  • 404:指定文件不存在。
  • 412:断点续传失败。
  • 503:文件仍然在处理而等待已超时。

View/{*Path}

使用用户定义的默认的 MIME 类型显示指定文件。
可用的查询字符串:
  • Mime:默认为用户定义的 MIME 类型,表示响应的 MIME 类型。
  • Timeout:默认为 10,表示等待文件处理的秒数。若设置为 -1 则将无限制地等下去。
返回 HTTP 状态码:
  • 200 & 206 & 304:传输文件/断点续传。
  • 404:指定文件不存在。
  • 412:断点续传失败。
  • 503:文件仍然在处理而等待已超时。

Upload/{*Path}

使用 multipart/form-data 上传指定文件到指定目录。
返回 JSON:
  • {"success":true}:成功。
  • {"error":"(message)"}:出错,具体信息在 message 中。

Api/List/{*Path}

列出当前目录下的所有目录与文件。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • @lastWriteTimeUtc:当前目录的修改日期,其格式为协调世界时 (UTC)。
    • result/directory 元素:一个目录。
      • @name:目录名。
      • @lastWriteTimeUtc:修改日期,其格式为协调世界时 (UTC)。
    • result/file 元素:一个文件。
      • @name:文件名。
      • @size:文件大小,单位:字节。
      • @lastWriteTimeUtc:修改日期,其格式为协调世界时 (UTC)。

Api/Details/{*Path}

给出指定文件的详细信息。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • result/file 元素:当前文件。
      • @state:文件当前状态,如果为 ready 表示处理完毕,否则可能会附带其他属性。
      • @mime:文件的默认 MIME 类型。
      • @size:文件大小,单位:字节。
      • @lastWriteTimeUtc:修改日期,其格式为协调世界时 (UTC)。
      • result/file/ffmpeg 元素:元素内部含有 FFmpeg 分析结果的 CDATA。

Api/CreateDirectory/{*Path}

在指定位置创建目录。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Api/Copy/{*Path}

将指定位置目录/文件复制到目标位置。
可用的查询字符串:
  • Target:目标位置。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Api/Move/{*Path}

将指定位置目录/文件移动到目标位置。
可用的查询字符串:
  • Target:目标位置。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Api/Delete/{*Path}

删除指定位置目录/文件。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Api/NiGuan/{*Path}

查询特定页上的全部 YouTube 视频及其在指定目录下离线下载地址。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • result/video 元素:表示一个 YouTube 视频。
      • @title:视频名称。
      • @url:视频地址。
      • @author:视频上传者。
      • @keywords:视频关键字。
      • @rating:视频平均评分。
      • @viewCount:视频浏览量。
      • @length:视频长度。
      • result/video/download 元素:表示该视频的一种格式或字幕。
        • @type:该链接的简要信息。
        • @information:有关该链接的具体信息。
        • @link:在指定目录下创建离线下载任务的地址。

Api/Codecs

查询当前服务器支持的编解码器。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • result/codec 元素:表示一种编解码器。
      • @name:编解码器名称。
      • @description:编解码器简介。
      • @decodingSupported:是否支持解码,默认为 False。
      • @encodingSupported:是否支持编码,默认为 False。
      • @type:指示该编解码器为视频编解码器(Video)、音频编解码器(Audio)还是字幕编解码器(Subtitle)。
      • @intraFrameOnlyCodec:是否仅支持帧内编解码,默认为 False。
      • @lossyCompression:是否支持有损压缩,默认为 False。
      • @losslessCompression:是否支持无损压缩,默认为 False。

Task/Create/Offline/{*Path}

在指定目录下创建离线下载任务。
可用的查询字符串:
  • Url:使用 Rbase64($.base64reversed)加密过的字符串。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Task/Create/FtpUpload/{*Path}

将指定目录下的文件上传到 FTP。
可用的查询字符串:
  • Target:目标 FTP 地址,格式为 ftp://[username:[email protected]]host/dir/file,你的用户名和密码不会被保留,也不会在上传进度上显示。
  • Files:要压缩的文件/目录的完整路径,用“|”分割。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • @id:创建的任务 ID,生成方式为 Convert.ToBase64String(Encoding.UTF8.GetBytes(DateTime.UtcNow.Ticks.ToString(CultureInfo.InvariantCulture)))

Task/Create/Compress/{*Path}

将指定文件压缩到指定路径。
可用的查询字符串:
  • BaseFolder:压缩的位置,默认为根目录。
  • Files:要压缩的文件/目录的完整路径,用“|”分割。
  • CompressionLevel:压缩级别,默认为 Ultra。可以是 Ultra, High, Normal, Low, Fast, None 中的一个。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Task/Create/Decompress/{*Path}

将指定文件解压到指定路径。
可用的查询字符串:
  • Target:解压的目标位置。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • @id:创建的任务 ID,生成方式为 Convert.ToBase64String(Encoding.UTF8.GetBytes(DateTime.UtcNow.Ticks.ToString(CultureInfo.InvariantCulture)))

Task/Create/Convert/{*Path}

将指定文件转码。
可用的查询字符串:
  • Target:转码的目标位置。
  • Size:转码后的图像尺寸,不填表示不变。
  • VCodec:使用的视频编解码器名称,不填表示自动识别。
  • ACodec:使用的音频编解码器名称,不填表示自动识别。
  • SCodec:使用的字幕编解码器名称,不填表示自动识别。
  • AudioPath:替换用的音频路径。可用于合并从 YouTube 下载下来的音视频分开的文件。
  • Start:转码的开始时间,不填表示从头开始。
  • End:转码的结束时间,不填表示到尾结束。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Task/Create/CrossAppCopy/{*Path}

跨云雀复制文件到指定路径。
可用的查询字符串:
  • Domain:源云雀的域名。
  • Path:源云雀的位置。
  • Password:源云雀经过 SHA512 加密后的密码。默认使用当前云雀的密码。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • @id:创建的任务 ID,生成方式为 Convert.ToBase64String(Encoding.UTF8.GetBytes(DateTime.UtcNow.Ticks.ToString(CultureInfo.InvariantCulture)))

Task/Create/BatchMergeVA/{*Path}

批量合并此目录下的音视频文件。
可用的查询字符串:
  • DeleteSource:是否要删除源文件。
  • VideoPattern:视频文件匹配模式。
  • AudioPatterns:音频文件替换模式,使用 \n 分割多个模式。
  • ResultPattern:输出文件替换模式。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。

Task/Query/{TaskType}/{ID}

查询指定任务的进度。
返回 XML:
  • result 元素
    • @status:指定操作是否成功,值为 ok 或 error。
    • @message:出错信息。
    • 子元素将包含具体的任务信息。