Documentation has been updated: see help center and changelog in one place.

YouTube 下载器

了解如何使用 Web Scraper API 下载 YouTube 视频和音频内容。了解参数和云存储设置选项。

youtube_download source 提供您选择的 YouTube 视频的音频/视频内容。请注意,由于数据量可能较大,此 source 仅可通过异步 Push-Pull integrationCloud Storage 功能可用。

如需免费试用 YouTube 下载器,请联系我的 销售团队.

YouTube 下载器的工作原理

  1. 通过 API 提交:

    • 一个或多个 YouTube 视频 ID;

    • 云存储详情。

  2. 获取 API 响应,确认您下载视频的请求已被成功接受。

  3. 当我们系统处理完视频后,可在指定的云存储位置获取这些视频。

输入参数值

参数
说明
默认值

source

设置抓取器。

youtube_download

query

YouTube 视频 ID。

-

storage_type

云服务的存储类型(gcs, s3s3_compatible)

-

storage_url

要将结果上传到的云存储位置的存储桶名称(针对 AWS S3)或 URL(针对其他兼容 S3 的存储)。

-

callback_url

您的回调端点 URL。 更多信息

-

context: download_type

指定是否下载 音频, 视频,或两者 - audio_video.

audio_video

context: video_quality

设置视频质量: best, worst,或一个分辨率 - 480, 720, 1080, 1440, 2160(4K).

720

提交单个任务

端点

POST https://data.oxylabs.io/v1/queries

输入

按下面示例所示,在 JSON 有效负载中提供任务参数:

curl --user "user:pass1" \
'https://data.oxylabs.io/v1/queries' \
-H "Content-Type: application/json" \
-d '{
    "source": "youtube_download",
    "query": "9cQBNYsCqQs",
    "storage_type": "s3",
    "storage_url": "s3://your-s3-bucket/your-folder/"
}'

批处理任务

您可以在单个批量请求中提交最多 5,000 个视频 ID。

端点

POST https://data.oxylabs.io/v1/queries/batch

输入

curl --user "user:pass1" \
'https://data.oxylabs.io/v1/queries/batch' \
-H 'Content-Type: application/json' \
-d '{
    "source": "youtube_download",
    "query": ["9cQBNYsCqQs", "KGOsWPF4Wfs"],
        "context": [
        {
            "key": "download_type",
            "value": "video"
        },
        {
            "key": "video_quality",
            "value": "1080"
        }
    ],
    "storage_type": "s3",
    "storage_url": "your-s3-bucket/your-folder/"
}'

API 将以 JSON 对象响应,包含为每个创建的任务返回的任务信息。任务状态将会是 pending 直到下载完成。

检查任务状态

如果您提供了有效的 回调 URL 在提交任务时,我们将在完成后通过向指定的回调 URL 发送一个 JSON 有效负载 来通知您。

但是,如果您提交任务时没有使用 回调服务,您可以手动检查任务状态。从提交任务后收到的响应中检索 href 字段中的 URL, rel:self 部分。检查任务状态的 URL 类似如下: http://data.oxylabs.io/v1/queries/12345678900987654321。查询此 URL 将返回任务信息,包括其当前 status.

端点

GET https://data.oxylabs.io/v1/queries/{id}

云存储

您可以将 YouTube 视频传送到 Google Cloud Storage, Amazon S3, Alibaba OSS, 其他兼容 S3 的云存储.

内容文件将出现在您的云存储位置,并将根据以下命名模式之一命名:

  • {video_id}_{job_id}.mp4 – 视频 文件

  • {video_id}_{job_id}.m4a – 音频 文件

存储参数

参数
说明
有效值

storage_type

您的云存储类型。

gcs (Google Cloud Storage);

s3 (AWS S3); s3_compatible (其他兼容 S3 的存储解决方案)。

storage_url

您的云存储 URL

任意 s3gcs 存储桶名称;

任意 s3-兼容 存储 URL。

Google Cloud Storage 设置

要将作业结果上传到您的 Google Cloud Storage 存储桶,请 为我们的服务设置特殊权限 如我们在 Google Cloud Storage 文档.

{
    "source": "youtube_download",
    "query": "9cQBNYsCqQs",
    "storage_type": "gcs",
    "storage_url": "bucket_name/path"
}

Amazon S3 设置

要将作业结果上传到您的 Amazon S3 存储桶,请为我们的服务设置访问权限。为此,请前往 https://s3.console.aws.amazon.com/S3存储存储桶名称 (如果您还没有,请创建一个)权限存储桶策略.

使用下面的存储桶策略(别忘了在 YOUR_BUCKET_NAME):

{
    "Version": "2012-10-17",
    "Id": "Policy1577442634787",
    "Statement": [
        {
            "Sid": "Stmt1577442633719",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::324311890426:user/oxylabs.s3.uploader"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME"
        },
        {
            "Sid": "Stmt1577442633719",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::324311890426:user/oxylabs.s3.uploader"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        }
    ]
}

此策略允许我们向您的存储桶写入,授予您对上传文件的访问权限,并知道存储桶的位置。

Alibaba Cloud OSS 设置

为了将结果保存到您的 Alibaba Cloud 对象存储服务 (OSS),您必须创建 ACCESS_KEY_IDACCESS_KEY_SECRET 并使用它们来构成存储 URL。请按照我们在 Alibaba Cloud OSS 文档 .

{
    "source": "youtube_download",
    "query": "9cQBNYsCqQs",
    "storage_type": "s3_compatible",
    "storage_url": "https://ACCESS_KEY_ID:ACCESS_KEY_SECRET@BUCKET_NAME.oss-REGION.aliyuncs.com/FOLDER_NAME"
}

兼容 S3 的存储设置

如果您想将结果传送到其他兼容 S3 的存储位置,您需要包含您的存储桶的 ACCESS_KEY:SECRET 身份验证字符串在请求体的 storage_url 值中:

{
    "source": "youtube_download",
    "query": "9cQBNYsCqQs",
    "storage_type": "s3_compatible",
    "storage_url": "https://ACCESS_KEY:[email protected]/my-videos"
}

最后更新于

这有帮助吗?