在自媒体工具、内容素材采集、短视频内容处理等后端开发场景,经常需要通过短视频分享链接获取视频源地址、封面、作者、文案等元数据。完整解析短视频链接解析 GET 接口,包含接口基础配置、请求规范、返回结构、多语言调用示例、异常排查方案,全程以技术实现为核心,客观讲解接口调用逻辑。
接口基础信息汇总
| 配置项 | 详情说明 |
|---|---|
| 文档编号 | doc/107 |
| 接口地址 | https://api.17zhiling.com/api/video/parse-video-url |
| 请求方式 | HTTP GET |
| 响应格式 | application/json |
| 支持平台 | 抖音、快手、小红书、微信视频号、豆包、即梦等 30 + 短视频平台 |
| 接口能力 | 传入分享链接,返回视频直链、图集图片、标题、简介、作者信息 |
| 全局并发上限 | 100 QPS |
标准请求配置
请求头固定规范
Content-Type: application/x-www-form-urlencoded; charset=utf-8
请求参数表(GET 拼接在 URL 后)
| 参数名 | 必填 | 数据类型 | 参数说明 |
|---|---|---|---|
| key | 是 | string | 开发者控制台密钥管理页面获取接口凭证 |
| url | 是 | string | 短视频平台分享链接,特殊字符建议 URL 编码 |
标准请求拼接示例
https://api.17zhiling.com/api/video/parse-video-url?key=你的控制台密钥&url=短视频分享链接
响应 JSON 结构详解
外层通用返回字段
| 字段 | 类型 | 释义 |
|---|---|---|
| code | int | 业务状态码,判断请求是否正常 |
| msg | string | 状态描述文本 |
| data | object | 视频 / 图集核心元数据对象 |
| exec_time | float | 接口处理耗时(单位:秒) |
| user_ip | string | 客户端请求 IP 地址 |
data 内部元数据字段区分视频 / 图集
| 字段 | 类型 | 使用场景说明 |
|---|---|---|
| url | string | 单视频直链,图集场景为空 |
| videosList | string 数组 | 合集多视频地址,普通视频为空数组 |
| title | string | 作品标题 |
| desc | string | 作品简介文案 |
| authorName | string | 创作者昵称 |
| authorAvatar | string | 创作者头像链接 |
| photo | string | 视频封面图,图集场景为空 |
| picsList | string 数组 | 图集图片数组,普通视频为空数组 |
成功返回完整示例
{ "code": 200, "msg": "获取成功", "data": { "title": "北京一名大学生在学校晕倒 抽搐 无意识,三间房派出所民警校园里巡查及时发现,拨打120 联系家属 送医院 救了过来。(记者:新华)", "desc": "北京一名大学生在学校晕倒 抽搐 无意识,三间房派出所民警校园里巡查及时发现,拨打120 联系家属 送医院 救了过来。(记者:新华)", "url": "https://wxapp.tc.qq.com/xxx", "authorName": "法治进行时", "authorAvatar": "https://wx.qlogo.cn/xxx", "photo": "https://wxapp.tc.qq.com/xxx", "picsList": [] }, "exec_time": 1.999323, "ip": "111.194.4.79" }
状态码对照表
| code | 含义 | 处理方案 |
|---|---|---|
| 200 | 解析请求成功 | 读取 data 内视频、图集元数据 |
| 500 | 服务端异常 | 间隔 2 秒重试最多 2 次,持续报错可咨询平台客服 |
| -1 | 业务异常 | 密钥错误、链接无效、免费额度耗尽、请求间隔过短 |
多语言可运行调用代码
Python Requests 示例
import requests
# 基础配置
api_key = "替换控制台密钥"
api_url = "https://api.17zhiling.com/api/video/parse-video-url"
video_link = "短视频分享链接"
params = {
"key": api_key,
"url": video_link
}
headers = {
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
}
try:
res = requests.get(api_url, params=params, headers=headers, timeout=10)
res.raise_for_status()
result = res.json()
print("接口返回数据:", result)
except Exception as e:
print("请求异常信息:", str(e))
C# HttpClient 示例
using System;
using System.Net.Http;
using System.Collections.Generic;
class VideoParseDemo
{
private static readonly HttpClient client = new HttpClient { Timeout = TimeSpan.FromSeconds(10) };
private const string ApiKey = "你的接口密钥";
private const string ApiAddr = "https://api.17zhiling.com/api/video/parse-video-url";
static async Task Main(string[] args)
{
var queryParam = new Dictionary<string, string>()
{
{"key", ApiKey},
{"url", "短视频分享链接"}
};
var builder = new UriBuilder(ApiAddr);
foreach (var item in queryParam)
{
builder.Query += $"{Uri.EscapeDataString(item.Key)}={Uri.EscapeDataString(item.Value)}&";
}
try
{
var resp = await client.GetAsync(builder.Uri);
resp.EnsureSuccessStatusCode();
string content = await resp.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
catch (Exception ex)
{
Console.WriteLine("请求失败:" + ex.Message);
}
}
}
Java OkHttp 示例
import okhttp3.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class VideoParseTest {
private static final OkHttpClient httpClient = new OkHttpClient();
private static final String KEY = "控制台密钥";
private static final String API = "https://api.17zhiling.com/api/video/parse-video-url";
public static void main(String[] args) throws IOException {
Map<String, String> params = new HashMap<>();
params.put("key", KEY);
params.put("url", "短视频分享链接");
HttpUrl.Builder urlBuilder = HttpUrl.parse(API).newBuilder();
params.forEach(urlBuilder::addQueryParameter);
Request request = new Request.Builder().url(urlBuilder.build()).get().build();
try (Response response = httpClient.newCall(request).execute()) {
if (response.isSuccessful() && response.body() != null) {
System.out.println(response.body().string());
}
}
}
}
PHP cURL 示例
<?php
$apiKey = "你的密钥";
$videoUrl = "短视频分享链接";
$apiAddr = "https://api.17zhiling.com/api/video/parse-video-url";
$params = http_build_query([
"key" => $apiKey,
"url" => $videoUrl
]);
$fullUrl = $apiAddr . "?" . $params;
$ch = curl_init($fullUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
if ($err) {
echo "请求报错:" . $err;
} else {
var_dump(json_decode($response, true));
}
?>
开发踩坑与优化方案
- 频繁返回 - 1 业务异常 原因: 3 秒内多次请求、链接包含特殊字符未编码、密钥复制存在空格 解决方案:接口增加延时,所有外部链接统一 URL 编码,核对密钥完整字符
- 解析后 picsList/url 字段为空 原因:链接为图集则视频 url 为空;普通短视频图集数组为空 解决方案:业务代码增加字段空值判断,区分两种数据结构
- 500 服务报错频繁 解决方案:添加重试机制,最多重试 2 次,间隔 2 秒,短时间大量报错暂停调用
&spm=1001.2101.3001.5002&articleId=161926271&d=1&t=3&u=d56905ac63db4c0bae58b426aa8fdef2)
120

被折叠的 条评论
为什么被折叠?



