爱奇艺云无官方PHP SDK和公开REST API,直接调用会因签名验证失败返回401/403;仅企业客户通过开放平台申请资质后,可用AppKey/AppSecret调用有限接口,且签名逻辑严格、时效短;非商业小批量需求可考虑浏览器自动化抓取,但稳定性差。

爱奇艺云(iQIYI Cloud)没有官方公开的 PHP SDK,也没有标准 REST API 文档面向第三方开发者开放。所谓“爱奇艺云数据”,实际多指其内部业务系统(如会员、播放日志、内容分发等)或已下线的旧版云服务(如 iQIYI Cloud Storage),目前无法通过 PHP 直接对接。
为什么 file_get_contents 或 cURL 会失败
直接请求类似 https://api.iqiyi.com/xxx 的地址,99% 会返回 401、403 或空响应:
- 所有接口强制校验
X-Qiyi-Auth或Authorization签名头,签名算法未公开且动态依赖时间戳、设备 ID、用户 token 等私有参数 - 多数接口绑定 AppID + 包名 + 签名证书指纹,PHP 侧无法复现安卓/iOS 客户端的签名链路
- 部分接口还依赖 Cookie 中的
QY_QSESSION或P00001,而这些 cookie 只能通过登录页跳转+人机验证后获得,不可自动化维持
如果你手上有「爱奇艺开放平台」的 AppKey
极少数企业客户可通过 爱奇艺开放平台 申请资质,拿到 app_key 和 app_secret,此时可调用有限接口,例如内容检索、剧集元数据查询:
$url = 'https://www.php.cn/link/09c38a1ae4f990f5180c6a586fa2f3d3/api/content/search';
$params = [
'app_key' => 'your_app_key',
'keyword' => '狂飙',
'page_no' => 1,
'page_size' => 20,
'timestamp' => time(),
];
// 签名逻辑必须按文档拼接字符串 + HMAC-SHA256 + base64_encode
$sign_str = http_build_query($params) . 'your_app_secret';
$params['sign'] = base64_encode(hash_hmac('sha256', $sign_str, 'your_app_secret', true));
$response = file_get_contents($url . '?' . http_build_query($params));
注意:app_secret 绝不能硬编码在 PHP 脚本中;sign 字段大小写、空格、排序顺序必须完全匹配文档;过期时间默认 5 分钟,超时即 400 错误。
立即学习“PHP免费学习笔记(深入)”;
替代方案:用浏览器自动化抓取(仅限非商业、小批量)
如果只是临时导出自己账号下的观看记录或收藏列表,可行但受限:
- 用
Puppeteer(通过 Node.js)或php-webdriver控制 Chrome,模拟登录 → 提取document.cookie→ 携带 cookie 请求https://www.iqiyi.com/u/xxx/playhistory - PHP 本身不推荐直接做登录态维护,因为验证码(极验 Geetest)、滑块、设备指纹检测会频繁触发,
curl_setopt($ch, CURLOPT_COOKIEJAR, ...)基本无效 - 抓到的 HTML 需用
DOMDocument解析,而非正则;结构可能随前端改版失效,需定期检查class名是否变成u-play-history__item类似新命名
真正稳定的读写,只存在于爱奇艺内部系统或经其书面授权的 ISV 合作方。外部 PHP 项目若强依赖此类数据,建议转向公开 API 更友好的平台(如豆瓣、TMDB),或联系爱奇艺商务确认是否开放定向数据合作——别在签名算法上反复试错。



















