You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bash中使用YouTube API根据视频ID创建带标题的公开播放列表

实现自定义标题公开YouTube播放列表的bash方案

前置准备

  • 安装依赖工具:sudo apt install jq curl (其他发行版对应替换包管理器即可)
  • 前往Google Cloud Console创建项目,启用YouTube Data API v3,生成OAuth 2.0桌面应用凭据,将凭据文件保存到本地路径,例如./client_secret.json
  • 完成OAuth授权获取访问令牌,首次授权后可留存刷新令牌,后续运行无需重复手动授权。如果你本地已经用yt-dlp登录过YouTube账号,可以直接复用其缓存的访问令牌,无需单独申请凭据。

核心脚本逻辑

你已经完成了ID提取、去重、随机筛选的部分,只需要补充以下API调用逻辑即可生成公开自定义标题的播放列表:

#!/bin/bash
# 配置项,自行修改对应值
CLIENT_SECRET_PATH="./client_secret.json"
PLAYLIST_TITLE="随机歌单合集"
PLAYLIST_DESC="从本地ID库随机抽取的50首歌曲"
PRIVACY_STATUS="public" # 公开填public,私有填private,未列出填unlisted
SONG_ID_FILE="/tmp/songs.txt"
SELECTED_COUNT=50

# 随机筛选指定数量的视频ID
sort -R ${SONG_ID_FILE} | head -n ${SELECTED_COUNT} > /tmp/selected_vids.txt

# 函数:创建空播放列表,返回播放列表ID
create_empty_playlist() {
  curl -s --request POST \
    "https://www.googleapis.com/youtube/v3/playlists?part=snippet,status" \
    --header "Authorization: Bearer ${ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --data '{"snippet":{"title":"'"${PLAYLIST_TITLE}"'","description":"'"${PLAYLIST_DESC}"'"},"status":{"privacyStatus":"'"${PRIVACY_STATUS}"'"}}' \
    | jq -r '.id'
}

# 函数:将单个视频ID添加到指定播放列表
add_vid_to_playlist() {
  local plist_id=$1
  local vid=$2
  curl -s --request POST \
    "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet" \
    --header "Authorization: Bearer ${ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    --data '{"snippet":{"playlistId":"'"${plist_id}"'","resourceId":{"kind":"youtube#video","videoId":"'"${vid}"'"}}}' > /dev/null
}

# 主执行逻辑
NEW_PLIST_ID=$(create_empty_playlist)
echo "生成的公开播放列表链接:https://www.youtube.com/playlist?list=${NEW_PLIST_ID}"

# 批量添加选中的视频
while read -r video_id; do
  add_vid_to_playlist ${NEW_PLIST_ID} ${video_id}
  # 避免触发API频率限制,添加1秒延迟,可根据需求调整
  sleep 1
done < /tmp/selected_vids.txt

# 清理临时文件
rm /tmp/selected_vids.txt

注意事项

  • YouTube Data API免费配额为每日10000单位,创建1个播放列表消耗50单位,添加1个视频消耗50单位,单次生成50首歌的播放列表仅消耗2550单位,日常使用完全足够。
  • 若添加的视频存在版权限制、地区限制,会被自动过滤无法加入播放列表,不影响整体流程。

内容的提问来源于stack exchange,提问作者KB_tourettes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:48:03