真实经历,写了篇博客总结下。
节选:
说一下,我搬运视频的代码思路。这种做法,毕竟是侵权的。
首先,通过 node 爬虫,模拟浏览器的访问,获取到B站某个 up 主的所有视频,接下来通过 node 的 child_process 来执行 you-get 的命令行命令,使得这个 up 主的视频能够批量地被下载下来。当然,我并不想竭泽而渔,也觉得老视频没有多少意义,所以每个 up 主,我最多只爬去最新的 100 个视频。
接下来,我会将视频通过 YouTube 接口的方式,批量地上传到指定的频道上面去。
后来,随着我的开发,细节也越来越完善。
支持持续订阅某个 up 主,思路也无非是隔一段时间,爬去最近这段时间内他的上传的视频。
支持将同一个 up 主的视频放到同一个播放列表里,之所以这样做,一则是因为视频更方便管理和浏览。二则是害怕某天突然被告知,我偷了他的视频,这样删除的时候,也只需要找这个播放列表里的视频删除可以了。
原有的视频下载和上传的脚本是隔离的,导致做不到自动化。后来,这个工作实现了自动化。只需要在一开始将某个 up 主进行订阅,之后,下载,上传,长期订阅和上传这个 up 主的视频都能够自动完成。
坦白讲,写这个代码写得还挺开心,很大一部分因为是以前很少用到 js 里异步控制的 async await,但是这次代码写起来,用了很多,也用得很爽吧。另外以前也很少写 node 的后台服务,最多也就是写两个爬虫,这次却借助这个想法,顺便学了一波 node 服务的部署和运维(为了做这件事情,也为了科学上网,我当时还买了一台阿里云 vps,后来因为科学上网,服务挂了。我又换到了搬瓦工,这才一切稳定)。当然,有人可能会觉得我这种行为侵权,这个话题,我一会儿再聊。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.