有道云笔记是一款广受欢迎的云笔记工具,可以将笔记保存在云端,随时随地进行查看和编辑。但是,在使用有道云笔记时,用户发现其文件下载直链为临时链接,仅在一定时间内有效,不便于长期使用。因此,有道云笔记永久直链解析接口应运而生。


有道云笔记永久直链解析接口是一款能够将有道云笔记的临时链接转化为永久直链的工具,具备国内直链该有的防盗链功能,可以用来作为文件的下载链接或在线播放视频。


将以下代码存储成名为:api.php,使用时:

api.php/?url=有道云笔记文件分享链接&json=true

Type参数详解

url:有道云笔记文件分享地址(支持短链接)

json:非必须,是否返回 json 格式

<?php
// 验证请求是否合法,防止恶意请求
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    http_response_code(400);
    echo json_encode(['error' => 'Invalid request method']);
    exit;
}

// 获取传入的链接参数
if (!isset($_GET['url'])) {
    http_response_code(400);
    echo json_encode(['error' => 'Missing url parameter']);
    exit;
}

$url = $_GET['url'];

$json = isset($_GET['json']) && $_GET['json'] == 'ture';

// 获取跳转后的链接
function getRedirectUrl($url) {
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_NOBODY => true, // 只获取响应头,不获取响应体
        CURLOPT_HEADER => true, // 将响应头包含在输出中
        CURLOPT_CONNECTTIMEOUT => 5, // 设置连接超时时间为5秒
        CURLOPT_TIMEOUT => 10 // 设置请求超时时间为10秒
    ]);
    curl_exec($curl);
    $redirectUrl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
    curl_close($curl);
    return $redirectUrl;
}

$redirectUrl = getRedirectUrl($url);

// 提取链接中的ID值
$queryString = parse_url($redirectUrl, PHP_URL_QUERY);
parse_str($queryString, $params);
$id = isset($params['id']) ? $params['id'] : '';

if (empty($id)) {
    http_response_code(400);
    echo json_encode(['error' => 'Invalid url parameter']);
    exit;
}

// 构建API请求链接
$apiUrl = "http://note.youdao.com/yws/public/note/{$id}?editorType=0&cstk=cGtjFpHb";

// 发送API请求
$curl = curl_init($apiUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($curl);
curl_close($curl);

if (!$res) {
    http_response_code(500);
    echo json_encode(['error' => 'Failed to fetch API response']);
    exit;
}

// 解析API响应
$resArr = json_decode($res, true);
if (!$resArr || !isset($resArr['p'])) {
    // 打印API响应内容进行调试
    var_dump($res);
    http_response_code(500);
    echo json_encode(['error' => 'Invalid API response']);
    exit;
}

// 提取p值
$p = trim($resArr['p'], '/');

// 构建下载链接
$downUrl = "http://note.youdao.com/yws/api/personal/file/{$p}?method=download&inline=true&shareKey={$id}";

// 返回下载链接
if ($json) {
    echo json_encode(['downloadUrl' => $downUrl]);
} else {
    echo $downUrl;
}


点赞(1)

评论列表 共有 0 条评论

暂无评论
发表
评论
返回
顶部