您需要一个 API 来以编程方式下载视频文件,并在本周内交付。通过本指南的结束,您将能够调用一个返回直接下载 URL 和媒体元数据的单一端点,您可以使用这些元数据来选择正确的流,然后将文件保存在您的后端或管道中。
您可以使用此媒体 API 做什么
Zyla API Hub 托管了社交保存 API,这是一个媒体类别 API,提供给定视频的直接下载链接和元数据。它旨在为构建媒体工作流的开发人员设计:将源视频保存到存储中,创建离线审阅副本,为编辑器预取资产,或准备转码的输入。
下载视频端点的关键行为:
- 返回一个 JSON 负载,其中包含一个或多个可下载的“媒体”变体,适用于同一视频(例如,不同的质量和文件类型)。
- 每个项目包括一个直接的
url以供下载,quality标签,是否为仅音频通过is_audio,媒体type和文件extension。 - 如 API 所述:Instagram 的下载不可用。
根据设计,直接下载链接是时间限制的(您将在示例 URL 中看到一个 expire 查询参数)。您的集成应及时获取并存储资产。
在 Zyla API Hub 上开始
打开 Zyla 上的社交保存 API 页面,订阅并获取您的密钥:
- 前往市场列表:开始 7 天试用社交保存 API。
- 点击订阅或开始免费试用(如果可用)以获取 API 密钥。Zyla 使用订阅 + 配额模型(而不是按调用付费)。对于此 API,您可以从 7 天试用或 50 次请求开始;请查看 API 页面以获取当前访问选项和定价。
- 发送请求时使用 Authorization: Bearer YOUR_API_KEY。
您可以在一个 Zyla 账户和密钥下管理所有媒体 API,涵盖超过 10,000 个公共 API。
端点:下载视频
社交保存 API 暴露了一个单一、专注的媒体端点,用于下载视频资源。
- 方法:POST
- 路径:
https://zylalabs.com/api/5617/social-saver-api/7304/download-video - 目的:返回直接下载链接和元数据(格式、大小、持续时间)以 JSON 格式。响应包括一个
medias数组,您可以根据quality、type、extension进行过滤,以及是否为仅音频(is_audio)。 - 参数:在中心列表中未记录。仅使用您的 Zyla 密钥进行身份验证。
- 注意:Instagram 下载不可用。
您可以粘贴的 cURL 请求
在 Authorization 头中使用您的 Zyla 密钥进行身份验证。按原样复制此内容并替换 YOUR_API_KEY。
curl -s -X POST "https://zylalabs.com/api/5617/social-saver-api/7304/download-video"
-H "Authorization: Bearer YOUR_API_KEY"
真实 API 响应
以下是来自市场列表的官方响应示例。请注意 medias 数组。每个项目描述了一个可下载的流及其属性。
{"medias":[{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdub8B14Lp6oI&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1736278046%2C&mh=MZ&mm=31%2C29&mn=sn-uvu5a2a5t-j00e%2Csn-q4fzen7e&ms=au%2Crdu&mv=m&mvi=1&pl=24&rms=au%2Cau&gcr=mx&initcwndbps=3491250&bui=AfMhrI82lAjJY0WOeSw4RzQd2O7_8Y6bmXk_ZbZLjySWxJOJuL-BwW52kyzAAy6EWJkSuSg61HTO_0N5&spc=x-caUK7O22hI5OSL_QCSR-xQ&vprv=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=12665255&ratebypass=yes&dur=268.306&lmt=1734290066368598&mt=1736277676&fvip=5&fexp=51326932%2C51335594%2C51371294&c=ANDROID_VR&txp=5538434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Cmime%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRgIhAP8_1X4hO59Dv6XjFSNgbyuJbDFqy7lMkE7C3HsrxQe7AiEApBnqG74O6k_WVUrzyhzZEvtf9erlAyliN78-JkkHRkw%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRAIgBSiwjWgvUEx6UIJknkYNRfmeUvSHj9UrBPKaWykkoYMCIF50GZRAFXfL09I8W2EJG_MZegzkWyUDStwYe3RS8XDh","quality":"360p","is_audio":true,"type":"video","extension":"mp4"},{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdub8B14Lp6oI&itag=137&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1736278046%2C&mh=MZ&mm=31%2C29&mn=sn-uvu5a2a5t-j00e%2Csn-q4fzen7e&ms=au%2Crdu&mv=m&mvi=1&pl=24&rms=au%2Cau&gcr=mx&initcwndbps=3491250&bui=AfMhrI9VvQoIacAzvD2W3w5jlW_vLkoD4y6oMkRnf7lpOEIHZmQFTZR_rFMk0TDU6ri1VYNZuqe099AJ&spc=x-caUNzL6WsY4e6P&vprv=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=39897728&dur=268.249&lmt=1734289668428610&mt=1736277676&fvip=5&keepalive=yes&fexp=51326932%2C51335594%2C51371294&c=ANDROID_VR&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgfWD2wDcFVnGBH4igkfdwjjCM96VvjIVtS9WZDkfkam8CIB794at9yDgSh9LU43fWVbGiY8jT5EuJjx0RYUovzwiO&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRAIgBSiwjWgvUEx6UIJknkYNRfmeUvSHj9UrBPKaWykkoYMCIF50GZRAFXfL09I8W2EJG_MZegzkWyUDStwYe3RS8XDh","quality":"1080p","is_audio":false,"type":"video","extension":"mp4"},{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdu…
您通常会使用的字段:
medias:您可以呈现或选择的变体数组。medias[].url:直接下载 URL。它是时间限制的;请及时获取。medias[].quality:标签,例如“360p”、“1080p”。用于排名。medias[].is_audio:如果流为仅音频,则为 true。medias[].type和medias[].extension:用于存储命名和处理的媒体类型和文件扩展名。
Python 示例:选择一个流并下载
此示例调用相同的端点,选择最高标记质量且不是仅音频的流,并下载它。根据您的需要调整选择逻辑。
import os
import re
import requests
API_KEY = os.getenv("ZYLALABS_API_KEY", "YOUR_API_KEY")
URL = "https://zylalabs.com/api/5617/social-saver-api/7304/download-video"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
resp = requests.post(URL, headers=headers, timeout=30)
resp.raise_for_status()
data = resp.json()
medias = data.get("medias", [])
def quality_score(q):
# 提取数字部分,例如,"1080p" -> 1080
if not isinstance(q, str):
return -1
m = re.search(r"(\d+)", q)
return int(m.group(1)) if m else -1
# 优先选择非音频轨道,最高质量优先。如果需要,回退到任何变体。
video_variants = [m for m in medias if not m.get("is_audio")]
chosen = sorted(video_variants, key=lambda m: quality_score(m.get("quality")), reverse=True)
if not chosen:
chosen = medias # 如果仅存在音频变体,则回退
if not chosen:
raise SystemExit("API 没有返回媒体")
variant = chosen[0]
download_url = variant["url"]
ext = variant.get("extension", "bin")
quality = variant.get("quality", "unknown")
out_path = f"downloaded_{quality}.{ext}"
print(f"正在下载:{quality} ({ext})")
with requests.get(download_url, stream=True, timeout=60) as r:
r.raise_for_status()
with open(out_path, "wb") as f:
for chunk in r.iter_content(chunk_size=1024 * 512):
if chunk:
f.write(chunk)
print(f"保存到:{out_path}")
实施注意事项:
- 下载 URL 是时间限制的;在获取 JSON 后立即运行下载。
- 使用包含质量和扩展名的确定性命名约定存储媒体。
- 根据您的环境适当包装网络调用以进行重试。
节省时间的实用集成提示
- 持续时间和大小:端点描述指示元数据,例如格式、大小和持续时间。使用它们来预分配存储或估算处理时间。如果它们在您的响应中存在,请在日志和 UI 中显示它们。
- 时间限制链接:示例 URL 包含一个
expire查询参数。将每个链接视为过期;避免长期缓存直接 URL,并在需要时重新请求新链接。 - 并发:对于批处理作业,以保守的并发级别并行下载,以保持高吞吐量而不超载您的工作者。
- 仅限非 Instagram 源:API 注意 Instagram 下载不可用。相应地保护您的 UI 和队列。
- 文件完整性:如果 URL 或元数据中出现类似
clen的值,请使用它来验证完成的大小。否则,通过在您的转码器或 ffprobe 步骤中重新打开文件进行验证。
您可以快速实现的常见媒体工作流
- CMS 导入:在粘贴时,获取变体,选择首选基线(例如,720p MP4),存储到对象存储中,排队进行缩略图处理。
- 编辑审阅副本:获取低分辨率变体以减少审阅带宽,同时在您的资产图中保留原始源路径。
- 音频提取:过滤
is_audio == true以获取仅音频轨道进行转录或播客工作流。 - 无服务器剪辑:在无服务器功能中,获取直接链接,存储到临时存储中,启动下游剪辑/转码作业。
通过 MCP 从 AI 代理调用此媒体 API
如果您使用与 MCP 兼容的开发工具(Claude Code、Cursor、Windsurf),您可以通过 MCP 端点调用 Zyla API。配置您的客户端以指向 MCP 服务器 URL,并传递您的 API 密钥:
连接后,您的代理可以通过 MCP 使用您现有的 Zyla 订阅和密钥调用相同的社交保存 API 下载视频功能。行为和身份验证与直接 HTTP 调用相同:使用您的 Zyla 密钥进行授权,订阅 + 配额计费,以及响应中的时间限制直接下载链接。
测试、监控和操作此集成
- 重试和退避:将元数据请求和文件下载都包装在重试逻辑和指数退避中,以处理瞬态故障。
- 超时:对元数据 POST 和文件 GET 请求使用显式超时。对于大文件,可能需要更长的超时。
- 存储和生命周期:将媒体存储在对象存储中,并使用生命周期策略和校验和验证来降低成本和损坏风险。
- 可观察性:记录所选变体的质量、类型和扩展名。如果元数据包括大小或持续时间,请捕获这些信息以进行监控。
- 访问:将您的 Zyla API 密钥保存在秘密管理器中,并定期轮换。
如何选择正确的变体
大多数管道选择单一的“真实来源”变体,并可选地选择轻量级审阅副本:
- 源:选择您可以处理的最高非音频
quality(例如,1080p),优先选择extensionmp4 以兼容工具链。 - 审阅:使用较低的
quality或仅音频变体进行 QA 或转录任务。 - 回退:如果仅返回音频,则相应地分支您的工作流(例如,仅转录)。
在生产中有效的请求模式
- 拉取然后下载:调用端点,立即开始下载您选择的变体,然后再排队下游作业,使用保存的文件路径。
- 幂等性:如果您的队列可以重新投递,请写入临时路径,并在文件完全写入后原子移动。
- 同步与异步:在请求处理程序中保持元数据调用同步,但如果客户端无法等待,则将文件下载卸载到工作者。
订阅模型和访问
Zyla 使用订阅 + 配额,而不是按调用付费。对于社交保存 API,您可以从 7 天试用或 50 次请求开始;请查看市场页面以获取当前访问选项。在 Zyla API Hub 下管理所有媒体 API 的使用。
常见问题解答
API 支持 Instagram 吗?
不支持。列表中指出 Instagram 的下载不可用。
直接下载 URL 是永久的吗?
不是。它们是时间限制的;您将在 URL 中看到一个 expire 参数。在获取 JSON 后及时下载文件。
哪些字段告诉我该下载什么?medias[].url 是直接链接。使用 quality 来排名变体,使用 is_audio 来检测仅音频,使用 type/extension 来选择兼容格式。
需要什么身份验证?
在头中发送您的 Zyla 密钥:Authorization: Bearer YOUR_API_KEY。
有免费计划吗?
Zyla 采用订阅 + 配额模型。对于社交保存 API,您可以开始 7 天试用或 50 次请求;请查看列表以获取当前详细信息。
准备将 API 下载视频集成到您的媒体管道中吗?在这里开始您的试用并在几分钟内获取工作密钥:开始 7 天试用社交保存 API。
官方 API 响应
{"medias":[{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdub8B14Lp6oI&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1736278046%2C&mh=MZ&mm=31%2C29&mn=sn-uvu5a2a5t-j00e%2Csn-q4fzen7e&ms=au%2Crdu&mv=m&mvi=1&pl=24&rms=au%2Cau&gcr=mx&initcwndbps=3491250&bui=AfMhrI82lAjJY0WOeSw4RzQd2O7_8Y6bmXk_ZbZLjySWxJOJuL-BwW52kyzAAy6EWJkSuSg61HTO_0N5&spc=x-caUK7O22hI5OSL_QCSR-xQ&vprv=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=12665255&ratebypass=yes&dur=268.306&lmt=1734290066368598&mt=1736277676&fvip=5&fexp=51326932%2C51335594%2C51371294&c=ANDROID_VR&txp=5538434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Cmime%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRgIhAP8_1X4hO59Dv6XjFSNgbyuJbDFqy7lMkE7C3HsrxQe7AiEApBnqG74O6k_WVUrzyhzZEvtf9erlAyliN78-JkkHRkw%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRAIgBSiwjWgvUEx6UIJknkYNRfmeUvSHj9UrBPKaWykkoYMCIF50GZRAFXfL09I8W2EJG_MZegzkWyUDStwYe3RS8XDh","quality":"360p","is_audio":true,"type":"video","extension":"mp4"},{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdub8B14Lp6oI&itag=137&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1736278046%2C&mh=MZ&mm=31%2C29&mn=sn-uvu5a2a5t-j00e%2Csn-q4fzen7e&ms=au%2Crdu&mv=m&mvi=1&pl=24&rms=au%2Cau&gcr=mx&initcwndbps=3491250&bui=AfMhrI9VvQoIacAzvD2W3w5jlW_vLkoD4y6oMkRnf7lpOEIHZmQFTZR_rFMk0TDU6ri1VYNZuqe099AJ&spc=x-caUNzL6WsY4e6P&vprv=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=39897728&dur=268.249&lmt=1734289668428610&mt=1736277676&fvip=5&keepalive=yes&fexp=51326932%2C51335594%2C51371294&c=ANDROID_VR&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgfWD2wDcFVnGBH4igkfdwjjCM96VvjIVtS9WZDkfkam8CIB794at9yDgSh9LU43fWVbGiY8jT5EuJjx0RYUovzwiO&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRAIgBSiwjWgvUEx6UIJknkYNRfmeUvSHj9UrBPKaWykkoYMCIF50GZRAFXfL09I8W2EJG_MZegzkWyUDStwYe3RS8XDh","quality":"1080p","is_audio":false,"type":"video","extension":"mp4"},{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdu…
官方 API 响应
{"medias":[{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdub8B14Lp6oI&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1736278046%2C&mh=MZ&mm=31%2C29&mn=sn-uvu5a2a5t-j00e%2Csn-q4fzen7e&ms=au%2Crdu&mv=m&mvi=1&pl=24&rms=au%2Cau&gcr=mx&initcwndbps=3491250&bui=AfMhrI82lAjJY0WOeSw4RzQd2O7_8Y6bmXk_ZbZLjySWxJOJuL-BwW52kyzAAy6EWJkSuSg61HTO_0N5&spc=x-caUK7O22hI5OSL_QCSR-xQ&vprv=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=12665255&ratebypass=yes&dur=268.306&lmt=1734290066368598&mt=1736277676&fvip=5&fexp=51326932%2C51335594%2C51371294&c=ANDROID_VR&txp=5538434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Cmime%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRgIhAP8_1X4hO59Dv6XjFSNgbyuJbDFqy7lMkE7C3HsrxQe7AiEApBnqG74O6k_WVUrzyhzZEvtf9erlAyliN78-JkkHRkw%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRAIgBSiwjWgvUEx6UIJknkYNRfmeUvSHj9UrBPKaWykkoYMCIF50GZRAFXfL09I8W2EJG_MZegzkWyUDStwYe3RS8XDh","quality":"360p","is_audio":true,"type":"video","extension":"mp4"},{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdub8B14Lp6oI&itag=137&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1736278046%2C&mh=MZ&mm=31%2C29&mn=sn-uvu5a2a5t-j00e%2Csn-q4fzen7e&ms=au%2Crdu&mv=m&mvi=1&pl=24&rms=au%2Cau&gcr=mx&initcwndbps=3491250&bui=AfMhrI9VvQoIacAzvD2W3w5jlW_vLkoD4y6oMkRnf7lpOEIHZmQFTZR_rFMk0TDU6ri1VYNZuqe099AJ&spc=x-caUNzL6WsY4e6P&vprv=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=39897728&dur=268.249&lmt=1734289668428610&mt=1736277676&fvip=5&keepalive=yes&fexp=51326932%2C51335594%2C51371294&c=ANDROID_VR&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Cmime%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgfWD2wDcFVnGBH4igkfdwjjCM96VvjIVtS9WZDkfkam8CIB794at9yDgSh9LU43fWVbGiY8jT5EuJjx0RYUovzwiO&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRAIgBSiwjWgvUEx6UIJknkYNRfmeUvSHj9UrBPKaWykkoYMCIF50GZRAFXfL09I8W2EJG_MZegzkWyUDStwYe3RS8XDh","quality":"1080p","is_audio":false,"type":"video","extension":"mp4"},{"url":"https://rr1---sn-uvu5a2a5t-j00e.googlevideo.com/videoplayback?expire=1736299646&ei=HoB9Z_zLBt3bsfIP2_b38AY&ip=187.189.58.232&id=o-ADEmoHyt2c-jvecX7TCXCFzNwjCKWmTQdu…