您需要一种可靠的方法将社交媒体视频 URL 转换为可下载文件。本指南结束时,您将调用一个 API 请求您选择的格式和分辨率的视频,然后轮询第二个 API 以获取直接下载 URL——准备保存到存储、附加到 CMS 或交给后台工作者。
此 API 的功能及使用时机
社交媒体 API 视频下载 API 允许您提交来自 Youtube、Facebook、Instagram、SoundCloud、TikTok、X/Twitter 和 Twitch 等平台的视频 URL,选择目标格式/质量,然后在处理完成后检索可下载链接。它支持包括 144、240、360、480、720、1080、1440、4k、mp3、wav、ogg 和 webm 在内的流行分辨率和音频格式。典型用例包括:
- 自动将创作者提交的 URL 导入您的媒体管道
- 为移动应用预生成特定分辨率的资产
- 为播客或转录工作流创建仅音频提取
- 构建内部工具以归档和分类社交剪辑
在 Zyla API Hub,每个 API 都在单个帐户和密钥下使用相同的订阅和配额模型。这意味着您可以立即集成此 API,稍后添加其他媒体或社交端点,而无需重新引入新提供商。Zyla 在各个类别中托管超过 10,000 个公共 API,但本指南专注于媒体下载。
在 Zyla API Hub 上开始
要快速完成此集成:
- 打开 API 列表: 开始 7 天试用社交媒体 API 视频下载 API。
- 点击订阅或开始 7 天试用(或 50 次请求——查看列表以了解当前提供的内容)。
- 复制您的 API 密钥。身份验证是一个单一的头部:Authorization: Bearer YOUR_API_KEY。
计费是订阅 + 配额,而不是按调用计费。没有免费计划。有关当前访问选项和定价,请查看上面的 API 页面。如果您想稍后浏览更多媒体和社交集成,请访问 Zyla API Hub。
端点概述
此 API 提供两步流程:
- 请求您所需格式和质量的视频,通过下载,返回您的作业 ID。
- 等待约 30 秒,使用返回的 ID 轮询获取视频下载 URL,以检索最终的可下载链接。
1) 下载(提交视频进行处理)
- 方法:GET
- URL: https://zylalabs.com/api/10960/social-media-api-video-download/20671/download
- 描述:以任何格式和质量下载视频。也适用于 Youtube Shorts。
- 支持的格式:144、240、360、480、720、1080、1440、4k、mp3、wav、ogg、webm
- 支持的网站:Youtube、Facebook、Instagram、SoundCloud、TikTok、X/Twitter、Twitch
- 所需查询参数:
- download(字符串):源视频 URL(例如,Youtube 链接)
- format(字符串):目标格式或分辨率(例如,720)
官方 cURL 示例:
curl -s -X GET "https://zylalabs.com/api/10960/social-media-api-video-download/20671/download?download=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4iuPJ1pdNkY&format=720" \
-H "Authorization: Bearer YOUR_API_KEY"
官方 JSON 响应:
{
"success": true,
"id": "v2_stream_72b78f7ca6c4f1f267cb",
"title": "团队特色:阿尔及利亚 | Mazadona,阿尔及利亚的秘密世界杯武器",
"thumbnail": "https://i.ytimg.com/vi/4iuPJ1pdNkY/hqdefault.jpg",
"format": "mp4 [720p]"
}
对您的集成重要的内容:
- success:布尔值,指示请求已被接受。
- id:您将在下一个端点中使用的处理标识符。请保留它。
- title、thumbnail、format:对日志记录、用户体验或文件命名有帮助。
2) 获取视频下载 URL(轮询最终链接)
- 方法:GET
- URL: https://zylalabs.com/api/10960/social-media-api-video-download/20672/get-video-download-url
- 描述:使用下载步骤中的 ID 检索可下载 URL。
- 重要:在从上一个端点获取 ID 后,您必须等待 30 秒才能在此处使用它。处理通常需要 30 秒到 1 分钟,可能会因队列负载而有所不同。
- 所需查询参数:
- getVideo(字符串):下载返回的 ID,例如,v2_stream_72b78f7ca6c4f1f267cb
官方 cURL 示例:
官方 JSON 响应:
对您的集成重要的内容:
- status:在尝试使用 URL 之前检查“completed”。
- progress:整数进度指示器;对轮询回退和用户体验有用。
- downloads:一个数组;使用类型为“primary”的对象。它的 url 是直接下载链接。
端到端:请求、等待、获取 URL
下载端点触发处理并返回一个 id。然后,您必须等待至少 30 秒才能调用获取视频下载 URL。许多团队实现了一个简单的轮询循环,带有回退或固定等待和少量重试,具体取决于工作负载中的队列时间。
Python 示例
下面的示例执行两个步骤。它:
- 向下载发送 GET 请求,带有视频 URL 和选择的格式
- 等待 30 秒
- 使用返回的 id 调用获取视频下载 URL
- 在可用时打印最终的可下载 URL
import time
import urllib.parse
import requests
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1) 请求特定视频和格式的处理
video_url = "https://www.youtube.com/watch?v=4iuPJ1pdNkY"
format_value = "720"
download_endpoint = (
"https://zylalabs.com/api/10960/social-media-api-video-download/20671/download"
)
params = {
"download": video_url,
"format": format_value,
}
resp = requests.get(download_endpoint, headers=HEADERS, params=params, timeout=60)
resp.raise_for_status()
data = resp.json()
if not data.get("success"):
raise RuntimeError(f"下载请求失败:{data}")
job_id = data.get("id")
title = data.get("title")
fmt = data.get("format")
print(f"请求:{title} ({fmt}),作业 id:{job_id}")
# 2) 等待至少 30 秒后再获取下载 URL
time.sleep(30)
poll_endpoint = (
"https://zylalabs.com/api/10960/social-media-api-video-download/20672/get-video-download-url"
)
poll_params = {"getVideo": job_id}
poll_resp = requests.get(poll_endpoint, headers=HEADERS, params=poll_params, timeout=60)
poll_resp.raise_for_status()
poll_data = poll_resp.json()
status = poll_data.get("status")
progress = poll_data.get("progress")
print(f"状态:{status},进度:{progress}")
downloads = poll_data.get("downloads") or []
primary = next((d for d in downloads if d.get("type") == "primary"), None)
if primary and primary.get("url"):
print(f"下载 URL:{primary["url"]}")
else:
print("尚无下载 URL。请稍后再试轮询。")
实用集成说明
- 轮询频率:API 指出您必须在接收到 id 后等待 30 秒。如果您需要稳健性,请等待 30-45 秒,然后轮询一次。如果状态不是“completed”,请等待并再次轮询。示例响应在完成时显示进度为 100。
- 格式:格式参数接受 720、1080、4k 等条目作为视频质量,以及 mp3、wav、ogg、webm 作为音频或容器选择。根据您的存储和播放目标进行选择。
- 支持的来源:Youtube、Facebook、Instagram、SoundCloud、TikTok、X/Twitter 和 Twitch。如果您正在构建通用下载器 UI,请在将输入 URL 发送到 API 之前验证其域。
- 元数据处理:下载响应中的标题和缩略图在处理过程中对您的 UI 预览很有用;请将它们与作业 id 一起缓存。
- 存储:获取视频下载 URL 响应在 downloads[0].url 中返回直接链接(类型为“primary”)。将生成的文件保存到您的对象存储中或交给您的媒体管道。
- 错误处理:如果 success 为 false 或状态指示作业尚未准备好,请避免紧密循环。应用指数回退以减少不必要的请求。
- 配额:访问是通过订阅 + 配额,而不是按调用计费。请在 Zyla 仪表板和 API 列表中检查剩余配额;避免过度轮询以节省配额。
现实工作流
创作者上传与 URL 规范化
当创作者提交内容 URL 时,您的后端可以:
- 解析并验证 URL 域(必须是支持的网站之一)。
- 调用下载,格式=720,以获得移动友好的基线。
- 存储 id、标题和缩略图,并向用户显示“准备下载”状态。
- 在 30-60 秒后,轮询获取视频下载 URL,并将最终 URL 持久化为“准备”状态以进行交付或进一步处理。
音频提取用于转录或播客
如果您只需要音频,请将格式设置为 mp3、wav 或 ogg。然后运行您的转录服务或将音频附加到您的提要生成器。这避免了在只需要音频时获取全分辨率视频文件。
批量摄取用于编辑策划
对于每周策划任务,将视频 URL 排入作业队列。工作者首先请求下载作业,然后至少等待 30 秒,最后轮询获取视频下载 URL 以获取最终链接。持久化标题和缩略图以供编辑预览。
从 AI 代理调用 API(MCP)
如果您更喜欢通过 MCP 兼容客户端(例如,Claude Code、Cursor、Windsurf)来协调调用,您可以通过 Zyla MCP 端点路由请求。在初始化 MCP 连接时通过查询参数提供您的密钥,并使用上面显示的相同 Hub URL 进行调用,带上 Authorization 头。
文档和入口点: MCP。这允许 AI 代理调用您之前看到的确切 GET 请求,使用您的 Zyla API 密钥进行身份验证,在代理的工具执行环境中。
如何选择格式和管理时间
- 选择分辨率:720 是网络和移动的强大默认值。对于智能电视应用或编辑母版,请使用 1080 或更高。如果带宽受限,360 或 480 可以减少传输大小。
- 选择音频格式:mp3 广泛支持;wav 对于无压缩管道可能很方便;ogg 适合某些开源堆栈。
- 时间考虑:服务指出在获取 id 后需要等待 30 秒。处理通常在 30 秒到 1 分钟内完成,具体取决于队列负载。设计您的工作者以优雅地处理此延迟。
安全性和可靠性提示
- 授权:在每次调用中始终包括 Authorization: Bearer YOUR_API_KEY。将密钥保存在您的秘密管理器中。
- URL 处理:对下载参数使用标准 URL 编码,以避免查询字符串被截断(如官方 cURL 所示)。
- 重试:网络调用可能会暂时失败。对 5xx 响应或超时实施有限的重试和回退,尤其是在轮询步骤中。
- 可观察性:在调用下载时记录作业 id、标题和选择的格式。在轮询时,记录状态和进度,以识别减速和队列峰值。
- 存储生命周期:在获取最终 URL 并存储媒体后,考虑在您的系统中使原始链接失效,并依赖您自己的存储进行下游服务。
快速参考:参数和响应
下载
- HTTP 方法:GET
- URL: https://zylalabs.com/api/10960/social-media-api-video-download/20671/download
- 所需参数:
- download:完整视频 URL(例如,https://www.youtube.com/watch?v=4iuPJ1pdNkY)
- format:所需格式或质量(例如,720、1080、4k、mp3、wav、ogg、webm)
- 授权:Authorization: Bearer YOUR_API_KEY
- 响应字段:
- success:布尔值
- id:下一步的作业标识符
- title:视频标题
- thumbnail:缩略图 URL
- format:人类可读的格式描述符
获取视频下载 URL
- HTTP 方法:GET
- URL: https://zylalabs.com/api/10960/social-media-api-video-download/20672/get-video-download-url
- 所需参数:
- getVideo:来自下载步骤的 id
- 授权:Authorization: Bearer YOUR_API_KEY
- 行为:第一次调用前等待 30 秒;处理通常需要 30-60 秒。
- 响应字段:
- success:布尔值
- status:例如,“completed”
- progress:整数百分比
- downloads:包含类型、url 和 has_ssl 的对象数组
排查常见问题
- 立即轮询返回无 URL:确保在下载响应后至少等待 30 秒。如果仍未完成,请等待并再次轮询。
- 不支持的 URL:验证域是否为支持的网站之一(Youtube、Facebook、Instagram、SoundCloud、TikTok、X/Twitter、Twitch)。在发送之前规范化或验证 URL。
- 格式不正确:请使用列出的支持格式之一(例如,720、1080、4k、mp3、wav、ogg、webm)。除非在接受的值中指定,否则请避免添加文件扩展名。
- 配额超限:API 是订阅 + 配额。请在您的 Zyla 仪表板中监控使用情况,并在必要时升级。
常见问题解答
我应该在调用获取视频下载 URL 之前等待多久?
在从下载端点接收到 id 后至少等待 30 秒。处理通常在 30 秒到 1 分钟内完成,具体取决于队列负载。
支持哪些网站?
Youtube、Facebook、Instagram、SoundCloud、TikTok、X/Twitter 和 Twitch。
我可以请求哪些格式?
144、240、360、480、720、1080、1440、4k、mp3、wav、ogg、webm。
需要什么身份验证?
在每个请求中使用头部 Authorization: Bearer YOUR_API_KEY。
这是按调用计费吗?
不。访问是订阅 + 配额。请查看 API 页面以获取当前访问选项和定价。
交付
如果您准备好今天将社交链接转换为可下载媒体,请从本指南中的两个端点开始,并将它们连接到您的工作者或 webhook 流程。立即创建您的帐户并获取密钥: 开始 7 天试用社交媒体 API 视频下载 API。然后迭代格式和轮询间隔,以匹配您应用的性能目标。