今天看到苹果官网开卖两款新的智能水杯 HidrateSpark PRO 和 PRO STEEL。能够自动记录饮水量到 Apple Health,并通过机身 RGB 灯光提醒喝水。这个喝水的频率是根据你的 Apple Watch 和 iPhone 收集到的卡路里去去计算。运动多了,就会提醒你多喝水。简直就是 WaterMinder 的硬件版。
在网页中,他的推广视频十分吸引,很有「果味」——无论是音乐节奏、相机旋转的方式再到末尾的爆炸图。自然地,我想把它下载发给朋友观看。
首先,我尝试右键视频,看看有没有直接下载的按钮。果不其然,正如我无法直接右键下载哔哩哔哩和 YouTube 视频,苹果也没有让人轻松下载视频的方法。
接着,F12 打开开发者工具,查看有没有完整视频 CDN 的位置,结果发现视频是通过串流,分开多个小部分传送过来,格式为 .m4s
,并非一条完整的 mp4 视频 。No luck 🤷♂️
youtube-dl
在网上查找了一段时间后,发现大名鼎鼎的 youtube-dl 可以应付这个情况。虽然这个程序的名字指的是 YouTube Download,但是它实质上可以下载几乎每个网站的视音频资源。
我先使用 -F
让他找出苹果水杯产品页面所有的视频和音频资源。
youtube-dl -F https://www.apple.com/shop/product/HQ212ZM/A/hidratespark-pro-steel-smart-water-bottle
其中 https://www.apple.com/shop/product/HQ212ZM/A/hidratespark-pro-steel-smart-water-bottle
是苹果这个水杯产品页面的 URL。
得到的结果如下:
[info] Available formats for hidratespark-pro-steel-smart-water-bottle:
format code extension resolution note
hls-audio-English-0 mp4 audio only [en]
hls-audio-English-1 mp4 audio only [en]
hls-401 mp4 640x360 401k , avc1.64001e, video only
hls-2200 mp4 960x540 2200k , avc1.64001f, video only
hls-3850 mp4 1280x720 3850k , avc1.64001f, video only
hls-6600 mp4 1920x1080 6600k , avc1.640028, video only
6 x-m4v unknown (best)
[download] Finished downloading playlist: HidrateSpark PRO STEEL 32 oz. Smart Water Bottle - Silver
HLS 是 HTTP Live Streaming 的缩写,一个苹果公司开发的串流通讯协议。
看来「hls-600」正是我需要的。视频格式为 .mp4
,清晰度为 1920x1080
。我没有注意到这行最后面写着「video only」,这是后话。
-f
后标明希望下载的格式(hls-600),-o
后标明希望输出的文件名字。这次利用 youtube-dl 下载视频:
youtube-dl -f hls-6600 https://www.apple.com/shop/product/HQ212ZM/A/hidratespark-pro-steel-smart-water-bottle -o apple_bottle.mp4
成功下载,奇怪的是视频没有音频。这时我才注意到下载下来只是「video only」的文件。我需要同时把音频和视频下载下来,再进行合并获得一条带声音的视频画面。
幸运的是,youtube-dl 自带了这个功能,不需要我们使用额外的视频剪辑软件进行合并。
和刚才只下载视频不同,这次我们不但要同时下载音频,还要把他们合并输出成一个完整的 mp4 视频。首先,在 -f
里加上 bestaudio
。然后加一个 --merge-output-format mp4
(如果需要 mkv 格式则是 --merge-output-format mkv
)。
再试试:
youtube-dl -f hls-6600+bestaudio --merge-output-format mp4 https://www.apple.com/shop/product/HQ212ZM/A/hidratespark-pro-steel-smart-water-bottle
现在我成功获取一条高清、带声音的视频了。
以上的步骤在其他网站大多都适用。只需要把我的目标 URL 从 https://www.apple.com/shop/product/HQ212ZM/A/hidratespark-pro-steel-smart-water-bottle
换成你希望找的视频网站即可。