Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YoutubeAutoPlayList

每天自动抓取订阅用户的新作品并生成 YouTube 播放列表

Linux/Ubuntu 系统 Docker 方式部署每日自动创建 YouTube 播放列表的操作步骤:

1. 准备资料: cloud.google.com

2. 安装配置 Docker

### 安装 TODO
### 检查版本,验证安装
    #### docker --version
### 启动 Docker 并设置开机自启
    #### sudo systemctl start docker
    #### sudo systemctl enable docker
### 将当前用户添加到docker组, 避免使用sudo方式操作docker:
    #### sudo usermod -aG docker $USER
    #### newgrp docker
    #### docker run hello-world (验证是否生效, 如果不生效, 重启后再试)

3. 首次授权(生成 token.pickle)

### Google API 授权需要浏览器。本地运行(需有python环境和相关依赖):
    #### pip install -r requirements.txt
    #### python main.py
    #### 按提示用浏览器登录Google账号,完成授权。
    #### 之后本地生成的tokens/token.pickle上传到服务器同目录下的tokens/目录即可。

4. 上传项目文件至服务器(如果 token.pickle 过期, 在本地删除后重新生成)

5. 构建 Docker 镜像

### cd ~/your_dir
### docker build -t YoutubeAutoPlayList .

6. 运行

docker run --rm \
-v $PWD/credentials.json:/YoutubeAutoPlayList/credentials.json \
-v $PWD/tokens:/YoutubeAutoPlayList/tokens \
-v $PWD/logs:/YoutubeAutoPlayList/logs \
-v $PWD/channels_whitelist.txt:/YoutubeAutoPlayList/channels_whitelist.txt \
YoutubeAutoPlayList

7. 确认上一步运行成功后, 设置自动化定时任务(crontab)

### sudo crontab -e 添加以下定时任务[每天早上9点执行一次]
0 9 * * * cd [实际路径]/YoutubeAutoPlayList && sudo docker run --rm -v $PWD/credentials.json:/YoutubeAutoPlayList/credentials.json -v $PWD/tokens:/YoutubeAutoPlayList/tokens -v $PWD/logs:/YoutubeAutoPlayList/logs -v $PWD/channels_whitelist.txt:/YoutubeAutoPlayList/channels_whitelist.txt YoutubeAutoPlayList

8. 其他注意事项

### 查看docker日志(如未映射日志目录): docker logs <container_id>
### 更改关注频道:编辑channels_whitelist.txt,添加或删除频道ID,保存即可。
### 查看/更新Google授权:如更换Google账号,删除tokens目录下的token.pickle,再按上述授权流程重新生成。
### 修改其他参数:如需更换日志目录、token目录、白名单文件名等,可在docker run时用-e传递环境变量(参考前面脚本说明)。
### 安全性:credentials.json和token.pickle请勿公开,涉及账号敏感权限。
### 升级:如脚本/依赖有升级,直接更新脚本文件和重建镜像即可。
### 频道ID如何获取?打开YouTube频道页面,URL如https://www.youtube.com/channel/UCxxxx...,其中UCxxxx...部分即为频道ID。
### 脚本报错怎么办?先用docker run ...命令手动运行,结合日志定位问题。如权限、token等,按报错提示操作。

About

每天自动抓取订阅用户的新作品并生成YouTube播放列表

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages