Vimeo
2026-03-29
新闻来源:网淘吧
围观:18
电脑广告
手机广告
Vimeo
通过托管的OAuth认证访问Vimeo API。上传和管理视频、创建展示和文件夹、管理点赞和稍后观看列表,并与Vimeo社区互动。
快速开始
# Get current user info
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/vimeo/me')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
基础URL
https://gateway.maton.ai/vimeo/{resource}
网关将请求代理至api.vimeo.com并自动注入您的OAuth令牌。
认证
所有请求都需要在Authorization头部包含Maton API密钥:
Authorization: Bearer $MATON_API_KEY
环境变量:将您的API密钥设置为MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"
获取您的API密钥
复制您的API密钥
连接管理在以下地址管理您的Vimeo OAuth连接:.
列出连接
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=vimeo&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
创建连接
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'vimeo'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
获取连接
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
响应:
{
"connection": {
"connection_id": "a6ecb894-3148-4f4c-a54c-e9d917e3f2a9",
"status": "ACTIVE",
"creation_time": "2026-02-09T08:56:53.522100Z",
"last_updated_time": "2026-02-09T08:58:39.407864Z",
"url": "https://connect.maton.ai/?session_token=...",
"app": "vimeo",
"metadata": {}
}
}
在浏览器中打开返回的网址以完成OAuth授权。
删除连接
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
指定连接
如果您有多个Vimeo连接,请使用Maton-Connection请求头来指定使用哪一个:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/vimeo/me')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', 'a6ecb894-3148-4f4c-a54c-e9d917e3f2a9')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
如果省略,网关将使用默认(最早创建的)活动连接。
API参考
用户操作
获取当前用户
GET /vimeo/me
响应:
{
"uri": "/users/254399456",
"name": "Chris",
"link": "https://vimeo.com/user254399456",
"account": "free",
"created_time": "2026-02-09T07:00:20+00:00",
"pictures": {...},
"metadata": {
"connections": {
"videos": {"uri": "/users/254399456/videos", "total": 2},
"albums": {"uri": "/users/254399456/albums", "total": 0},
"folders": {"uri": "/users/254399456/folders", "total": 0},
"likes": {"uri": "/users/254399456/likes", "total": 0},
"followers": {"uri": "/users/254399456/followers", "total": 0},
"following": {"uri": "/users/254399456/following", "total": 0}
}
}
}
根据ID获取用户
GET /vimeo/users/{user_id}
获取用户动态
GET /vimeo/me/feed
视频操作
列出用户视频
GET /vimeo/me/videos
响应:
{
"total": 2,
"page": 1,
"per_page": 25,
"paging": {
"next": null,
"previous": null,
"first": "/me/videos?page=1",
"last": "/me/videos?page=1"
},
"data": [
{
"uri": "/videos/1163160198",
"name": "My Video",
"description": "Video description",
"link": "https://vimeo.com/1163160198",
"duration": 20,
"width": 1920,
"height": 1080,
"created_time": "2026-02-09T07:05:00+00:00"
}
]
}
获取视频
GET /vimeo/videos/{video_id}
搜索视频
GET /vimeo/videos?query=nature&per_page=10
查询参数:
查询- 搜索查询每页数量- 每页结果数(最多100)页码- 页码排序- 排序方式:相关度、日期、字母顺序、播放量、点赞数、评论数、时长排序方向- 排序方向:升序、降序
更新视频
PATCH /vimeo/videos/{video_id}
Content-Type: application/json
{
"name": "New Video Title",
"description": "Updated description"
}
删除视频
DELETE /vimeo/videos/{video_id}
操作成功时返回 204 No Content。
文件夹操作(项目)
列出文件夹
GET /vimeo/me/folders
响应:
{
"total": 1,
"page": 1,
"per_page": 25,
"data": [
{
"uri": "/users/254399456/projects/28177219",
"name": "My Folder",
"created_time": "2026-02-09T08:59:20+00:00",
"privacy": {"view": "nobody"},
"manage_link": "https://vimeo.com/user/254399456/folder/28177219"
}
]
}
创建文件夹
POST /vimeo/me/folders
Content-Type: application/json
{
"name": "New Folder"
}
更新文件夹
PATCH /vimeo/me/projects/{project_id}
Content-Type: application/json
{
"name": "Renamed Folder"
}
删除文件夹
DELETE /vimeo/me/projects/{project_id}
操作成功时返回 204 No Content。
获取文件夹视频
GET /vimeo/me/projects/{project_id}/videos
添加视频到文件夹
PUT /vimeo/me/projects/{project_id}/videos/{video_id}
操作成功时返回 204 No Content。
从文件夹移除视频
DELETE /vimeo/me/projects/{project_id}/videos/{video_id}
专辑操作(展示柜)
列出专辑
GET /vimeo/me/albums
创建专辑
POST /vimeo/me/albums
Content-Type: application/json
{
"name": "My Showcase",
"description": "A collection of videos"
}
响应:
{
"uri": "/users/254399456/albums/12099981",
"name": "My Showcase",
"description": "A collection of videos",
"created_time": "2026-02-09T09:00:00+00:00"
}
更新专辑
PATCH /vimeo/me/albums/{album_id}
Content-Type: application/json
{
"name": "Updated Showcase Name"
}
删除专辑
DELETE /vimeo/me/albums/{album_id}
操作成功时返回 204 No Content。
获取专辑视频
GET /vimeo/me/albums/{album_id}/videos
添加视频到专辑
PUT /vimeo/me/albums/{album_id}/videos/{video_id}
操作成功时返回 204 No Content。
从相册中移除视频
DELETE /vimeo/me/albums/{album_id}/videos/{video_id}
评论
获取视频评论
GET /vimeo/videos/{video_id}/comments
添加评论
POST /vimeo/videos/{video_id}/comments
Content-Type: application/json
{
"text": "Great video!"
}
响应:
{
"uri": "/videos/1163160198/comments/21372988",
"text": "Great video!",
"created_on": "2026-02-09T09:05:00+00:00"
}
删除评论
DELETE /vimeo/videos/{video_id}/comments/{comment_id}
成功时返回 204 No Content。
点赞
获取已点赞的视频
GET /vimeo/me/likes
点赞视频
PUT /vimeo/me/likes/{video_id}
成功时返回 204 No Content。
取消点赞视频
DELETE /vimeo/me/likes/{video_id}
成功时返回 204 No Content。
稍后观看
获取稍后观看列表
GET /vimeo/me/watchlater
添加到稍后观看
PUT /vimeo/me/watchlater/{video_id}
成功时返回 204 No Content。
从稍后观看中移除
DELETE /vimeo/me/watchlater/{video_id}
成功时返回 204 No Content。
粉丝与关注
获取粉丝列表
GET /vimeo/me/followers
获取关注列表
GET /vimeo/me/following
关注用户
PUT /vimeo/me/following/{user_id}
取消关注用户
DELETE /vimeo/me/following/{user_id}
频道与分类
列出所有频道
GET /vimeo/channels
获取频道
GET /vimeo/channels/{channel_id}
列出所有分类
GET /vimeo/categories
响应:
{
"total": 10,
"data": [
{"uri": "/categories/animation", "name": "Animation"},
{"uri": "/categories/comedy", "name": "Comedy"},
{"uri": "/categories/documentary", "name": "Documentary"}
]
}
获取分类视频
GET /vimeo/categories/{category}/videos
分页
Vimeo 使用基于页面的分页:
GET /vimeo/me/videos?page=1&per_page=25
响应:
{
"total": 50,
"page": 1,
"per_page": 25,
"paging": {
"next": "/me/videos?page=2",
"previous": null,
"first": "/me/videos?page=1",
"last": "/me/videos?page=2"
},
"data": [...]
}
参数:
页码- 页码(默认为 1)每页条数- 每页结果数(默认为 25,最大 100)
代码示例
JavaScript
const response = await fetch(
'https://gateway.maton.ai/vimeo/me/videos',
{
headers: {
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
}
}
);
const data = await response.json();
Python
import os
import requests
response = requests.get(
'https://gateway.maton.ai/vimeo/me/videos',
headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'}
)
data = response.json()
Python(创建文件夹)
import os
import requests
response = requests.post(
'https://gateway.maton.ai/vimeo/me/folders',
headers={
'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
'Content-Type': 'application/json'
},
json={'name': 'New Folder'}
)
folder = response.json()
print(f"Created folder: {folder['uri']}")
Python(更新视频)
import os
import requests
video_id = "1163160198"
response = requests.patch(
f'https://gateway.maton.ai/vimeo/videos/{video_id}',
headers={
'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
'Content-Type': 'application/json'
},
json={
'name': 'Updated Title',
'description': 'New description'
}
)
video = response.json()
print(f"Updated video: {video['name']}")
注意事项
- 视频 ID 是数字(例如:
1163160198) - 用户 ID 是数字(例如:
254399456在API路径中,文件夹被称为"projects" - 在Vimeo用户界面中,相册也被称为"Showcases"
- 成功执行DELETE和PUT操作时会返回204 No Content状态
- 视频上传需要使用TUS协议(本文不涉及此内容)
- 频率限制因账户类型而异
- 重要提示:当将curl输出通过管道传递给
- jq
或其他命令时,某些shell环境中可能无法正确展开$MATON_API_KEY这类环境变量错误处理
状态码
| 含义 | 400 |
|---|---|
| 缺少Vimeo连接或请求错误 | 401 |
| Maton API密钥无效或缺失 | 403 |
| 权限不足或范围不符 | 404 |
| 未找到资源 | Resource not found |
| 429 | 请求频率受限 |
| 4xx/5xx 错误 | 来自 Vimeo API 的透传错误 |
Vimeo 错误包含详细消息:
{
"error": "Your access token does not have the \"create\" scope"
}
故障排除:API 密钥问题
- 检查
MATON_API_KEY环境变量是否已设置:
echo $MATON_API_KEY
- 通过列出连接来验证 API 密钥是否有效:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
故障排除:无效的应用名称
- 确保您的 URL 路径以
vimeo开头。例如:
- 正确示例:
https://gateway.maton.ai/vimeo/me/videos - 错误示例:
https://gateway.maton.ai/me/videos
资源
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Usdc Hackathon
下一篇:gembox-skill


微信扫一扫,打赏作者吧~