更新:如何使用 youtube-dl 抓取 YouTube 频道的更新 | Electronic Moon

在这篇文章中,我只写了抓取的部分,但整个实现还不是非常自动化。这几天琢磨了一阵子之后,我搞清楚了如何使用 crontab 将整个抓取行为定时自动化进行,并且将抓取的内容自动化上传任意给定网盘。如果你像我一样是第一次接触 cron,网上有很多介绍教程用来入门,这里我给了 Admin’s Choice 的教程做参考。

具体的细节不在这里赘述了(因为真的太简单)唯一需要注意的一点是,执行原文中的 shell script 时默认需要在 shell script 所在的文件夹内寻找配置文件,所以在执行之前,必须将路径跳转到 shell script 所在文件夹内。「每隔六个小时自动跳转到 shell script 文件夹内并执行 shell script」的写法如下:

0 */6 * * * cd /home/YouTube/youtube_channel_archiver-master/ && sh /home/YouTube/youtube_channel_archiver-master/download_archive.sh

而自动上传到网盘,rsync 似乎是最好的选择,关于此,网上也有很多教程可以参考。同样,rsync 的命令可以写到 crontab 里自动执行。这样 YouTube 频道出现更新之后,就可以全自动化抓取并上传网盘啦。

Source: 如何使用 youtube-dl 抓取 YouTube 频道的更新 | Electronic Moon

在 1UP 播客中聊聊塞尔达

五月初的时候,我和我的朋友王晓光 (@cbvivi) 在他的博客节目 1UP 中聊了《塞尔达传说:旷野之息》这一款游戏。在这期节目中,我们聊了游戏中遇到的比较好玩的事情,讲了游戏中比较吸引人的一些设定,如果你没有玩过塞尔达传说,不妨也可以听听看。

另外,1UP 播客主要聊的是一些出色优秀的作品,包括但不限于电影、音乐、电视剧和游戏等,是一个极适合打发时间的节目。

你可以在 Apple iTunes 里找到我们的这一期播客节目,请点击这里

或者你也可以在泛用型播客客户端、各大播客平台上搜索「1UP」,点击好看的红色图标即可订阅收听。

The top 8 Chinese phones – The Verge

It’s time to stop dismissing Chinese phones as knockoffs. We’ve all seen the endless parade of iPhone clones, yes, but over the past couple of years, manufacturers from China have stepped up their game in a big way, turning out devices that are innovative, attractive, and straight-up desirable in their own right. If you don’t think there’s any reason to pay attention to Chinese phones, it’s because you haven’t been paying attention.

确实相当热血的一段话,说中国 Phone step up their game 了,变得 innovative 了,下面榜单是 Top 8 Chinese phones

结果榜单里有小米 8——一款从头到脚抄袭 iPhone X 的产品。

回顾 the verge 对国产厂商的报道,有「mate x 虽然抄袭 MacBook Pro,但我们觉得没问题」还有「P20 还没开机我就爱上了它」,还有本文。

没错,the verge 在 2018 年确实收钱收得厉害。

Source: The top 8 Chinese phones – The Verge

如何使用 youtube-dl 抓取 YouTube 频道的更新

众所周知,具有极强品牌意识的 Apple 会在下架商品的同时下架官方 YouTube 频道的视频,而 YouTube 上曾经出现过的第三方 Apple 视频库(例如 EveryAppleVideo)都纷纷被 Apple 发函拿下。如果你一直很想收藏 Apple 的广告视频(并在深夜反复观看),你可以在 VPS 上安装 youtube-dl 来抓取 Apple 的更新,下载最高清晰度的视频和音频,并使用 ffmpeg 将音视频流压在一起。这个方法适用于任何 YouTube 频道。

先决条件

在开始之前,你需要:

  • 一台配置不算太差 KVM 虚拟化的 VPS,内存至少要在 512 Mb 以上,因为要使用 ffmpeg,所以处理器核心不能太差。同时因为要挂载网盘,所以你的服务商需要为你的服务器开启 FUSE.
  • 一个网盘账号,Google Drive, Dropbox 和 OneDrive 均可。
  • 学会如何使用 ssh 远程登录 VPS,网上有很多教程,你可以轻松找到

Disclaimer: 接下来的安装和部署,我都是在 Debian 9 下进行,我可能会犯很初级的错误。如果有,请在评论中指出。

配置 youtube-dl 和 ffmpeg

  1. 安装 youtube-dl

youtube-dl 是一个可以下载 YouTube 视频的命令行应用程序,它需要 Python (2.6, 2.7, 或 3.2+) 才能正常工作,关于 youtube-dl 在不同平台下详细的安装说明可以参考它的 github readme 页面。

所以,我们先在 VPS 上安装 Python.

apt-get install python

然后再下载最新版的 youtube-dl

wget http://youtube-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl

在这一步,如果你的服务商的系统模版精简太厉害的话,很可能会报证书错误,提示证书不可信之类的信息,这个时候,你需要安装 ca-certificates 证书包。

apt-get install ca-certificates

更改目录的访问权限

chmod a+x /usr/local/bin/youtube-dl

至此,youtube-dl 就安装好了,这个时候,执行 youtube-dl —help应该可以看到如下的输出:

  1. 安装 ffmpeg

由于 YouTube 在 1080P 以上清晰度的视频才用了音视频流分开的设计,单纯下载 1080P 以上清晰度的视频时会出现只有画面没有声音的情况,所以我们需要使用 ffmpeg 将音视频流压制在一起。

apt-get install ffmpeg

安装完成之后,执行命令 ffmpeg 应该可以看到如下的输出:

至此,下载并且压制 YouTube 视频的工具已经完备,接下来我们准备一个抓取频道最高清晰度所有视频并下载的脚本。

准备抓取频道的脚本

youtube-dl 的具体使用说明在这里不赘述了,它的帮助文档中也有较为详细的描述,yotuube-dl 的功能和可配置选项非常强大,有兴趣的你可以详细研究。

但总之,我们需要做到的是:

  1. 下载频道中提供的最高清晰度视频,并且使用 ffmpeg 将音视频重新压制,输出为 mkv 格式。
  2. 重新命名输出文件,命名格式为:视频上传日期 – 视频标题 – (视频ID) – 清晰度 – 视频的 ID,视频需要存在以频道名称命名的文件夹中。
  3. 记录需要下载的 YouTube 频道,并且记录已经下载的视频 ID,重复执行脚本的时候无需重复下载。
  4. 下载视频配套的字幕(非自动转换)元数据和原始插图。

为了达到上述所有的功能,下载脚本的配置文件应该这么写,在这个配置文件中,下载的项目略微有些多,如果你不需要下载字幕和元数据,可以使用 # 将它注释掉:

-i
-o "%(uploader)s (%(uploader_id)s)/%(upload_date)s - %(title)s - (%(duration)ss) [%(resolution)s] [%(id)s].%(ext)s"

# 记录已下载文件以及需要下载的频道
--download-archive youtube-dl-archive.txt
-a youtube-dl-channels.txt

# 统一输出格式
--prefer-ffmpeg
--merge-output-format mkv

# 下载字幕
--write-sub
--all-subs
--convert-subs srt

# 下载元数据和配图
--add-metadata
--write-description
--write-thumbnail

# Debug
-v

将这个文件保存为 youtube-dl.conf,同时,新建一个名字叫 youtube-dl-channels.txt 的文件,记录你需要下载的频道地址,如下所示:

# Apple
https://www.youtube.com/user/Apple/

#Crowbcat

https://www.youtube.com/user/CrowbCat

#Nerdwriter1

https://www.youtube.com/user/Nerdwriter1

#idubbbz

https://www.youtube.com/user/iDubbbzTV

只需提供 URL 即可,接下来,新建一个名字为 youtube-dl-archive.txt 的空文件,这个文件内会记录已经下载的 YouTube 视频的视频 ID,重复运行的时候会跳过这个文件中记录的 ID.

接下来,确保上面建立的三个文件都在同一个目录,执行 youtube-dl --config-location youtube-dl.conf 即可开始自动爬取的过程,下载视频和压制的过程非常漫长,建议在 screen 中运行这个命令,以免 ssh 连接中断而导致脚本终止。

当然,你可能要问了,要我手工执行命令的话,这个到底自动在哪里?其实你可以将 youtube-dl --config-location youtube-dl.conf 保存为一个 shell script 并且建立一个 cron job 每隔一段时间自动执行,cron 是一个 Linux 系统下的计划任务工具,可以给定一个时间间隔自动运行一些项目,非常好用。

另外,配合 rclone,你可以挂载主流网盘,直接将下载完成的文件 rclone sync 到网盘上。但关于 rclone 的用法,我们只能下次再讲了(标准虎头蛇尾结局)。

注:本文的写作离不开 reddit/r/DataHoarder 社区的帮助。

 


20180717 更新:

针对自动化下载和 crontab 配置撰写,我写了这篇更新博文

针对直播设计的游戏

Getting Over It with Bennett Foddy.

我无法用语言描述我有多么讨厌这款游戏,这款 2017 年 10 月随 Humble Bundle 发售的游戏,因为特有的「对玩家的敌意」和「似乎永远无法完成的关卡」,在 2017 年底火了足足两个月。YouTube Gaming 和 twitch 上关于这款游戏的视频层出不穷,开发者 Bennett Foddy 不断接受采访揭露一茶匙这么浅的游戏设计理念:「这款游戏是为了伤害一类玩家设计的」他这么说,「在一定程度上,我是为了解构游戏设计,跳出传统游戏制作的桎梏,带着一种暗黑的幽默感来做的 Getting Over It」

随他怎么讲,但我认为,这款游戏是为了 reddit 和 twitch 设计的,它的设计理念只是为了成为一个 meme,迅速占领大家的注意力并且迅速离开,赚一笔快钱,是相当可耻且不配称作游戏的。

解构游戏设计,跳出桎梏,带着一种暗黑幽默感设计的游戏,是 2013 年底由 Galactic Cafe 发布的 The Stanley Parable,它结构和嘲讽了游戏开发者和玩家的微妙关系,试图预见了玩家在面对一款游戏时会做出的所有尝试——甚至在成就系统里,开发者还一定程度上嘲笑了那些成就完美主义者,设计了一个完全不可能完成的成就。The Stanley Parable 是深思熟虑的产物,它甚至相当无趣,但它探讨的关于游戏与玩家的关系具有非常精细的质地。换句话说,它并不是一款为了病毒性传播而制作的游戏。

但在移动流量大爆发的今天,很多游戏开发者确实是在为了直播开发出了类似于 Getting Over It 的游戏,这些游戏制作粗糙,但具有较强的对抗性(无论该对抗是发生在玩家与游戏还是玩家与玩家),可以在反复练习之后炫技。在病毒传播之后,知名主播暗暗较劲在比拼,开发者笑嘻嘻数钱。还有好多类似 Getting Over It 的作品,为了避免招骂在此就不一一列举了。

2018 Fall 博士申请总结

其实这篇文章几个月前就酝酿在写,那时是大年三十,我因为 offer 迟迟没到非常烦躁,躺在床上恶狠狠构思这篇文章「等一切都完了…等我拿到 offer…我一定要迤迤然回望过去的艰辛,作一下轻盈优雅的姿态,总结过去展望未来」。

但实话讲,我的申请是相当披头散发的,完全没有办法仙起来,在 2 月到 4 月的两个月里,我几乎没有深度睡眠,也没有办法集中精力做事。第一个 offer 在 约定俗成的 4 月 15 日大难日的前五天才拿到,那时我已经拿到并且在认真考虑台积电上海的质量控制部门的职位。最后我拿到 3 个 offer,其中 1 个(UT Austin)带 fellowship,另外两个(UCLA 和 UCSD)在第一年不提供 fellowship,需要尽快找到 TA 或者 RA 职位才可以办理学费减免。有 2 个学校完全没有音讯(Purdue 和 Ohio State),吃了 9 封拒信,详细的学校情况如下图所示:

我的背景是普通 211 本科(班级排名第二名,但 GPA 3.3/4.0,无法开具班级排名证明),C9 院校硕士(GPA 86/100,国家奖学金),托福 107 分,GRE 320+3.5,提交申请材料的时候只有一篇一作论文(应用物理顶刊),申请方向是材料工程的博士。推荐信分别是国内教授,国外物理系教授和诺奖得主教授(非学术推荐,助教表现推荐)。

目前看来,我的背景在一众申请人里是偏弱的,因为 3.3 的本科 GPA 看起来实在是 abysmal,在同届申请人普遍展示的 3.8/3.9 的 GPA 中,我的材料可能完全过不了初步筛选,过低的 GPA 也容易引起对方院校对你基础知识掌握的怀疑。在这个情况下,GPA 覆水难收,你最好能提供 GRE 物理 subject 考试的分数来挽救。事实证明,过低的本科 GPA 并且缺乏 GRE subject test 分数是我此次申请的最大短板。一作学术论文虽然是一个加分项,但非常难掩盖 GPA 过低的影响。

当然在材料准备阶段我是盲目乐观的,选择的学校比上面展示的列表还要乐观十倍,一直到提交材料阶段才被推荐人教授提醒。但上面展示的列表仍然过于乐观,因为我申请的全部都是 PhD 项目,并且在申请材料里多少表示了带奖才会入学,所以铤而走险非常大胆。盲目的乐观主义让我犯下了此次申请第二个重大失误:阅读材料不细致,消极陶瓷。

由于我申请的是材料工程的博士,和物理系不同,材料工程系很少开公共课程,博士生的费用需要教授出钱提供 Research Assistantship,而不能保证院系提供 Teaching Assistantship,因此,在申请前必须联系好对方教授确认意向和空缺,否则再好的背景也会在 pool 中无人问津。有一些院校甚至在申请 FAQ 中明确要求学生联系好导师,由导师联系系里确认你的录取,所以阅读博士项目官网并且联系导师至关重要。通常,建议在圣诞节前后发送 cold email 联系教授,在 email 中简要介绍一下自己的背景和研究兴趣,并且附上自己的简历 PDF,没有收到回复也千万不要气馁,可以换一些教授再进一步接触。一些中介会让学生在圣诞节、感恩节发祝贺邮件,我觉得那样太奇怪了,还是不卑不亢一些为好。

我的硕士导师是 Penn State 物理系的招生委员会成员,他得知我正在发 cold email 的时候情绪非常浓烈地让我停止,他说委员会教授把这些 email 称为 anthropology email,大多数理智的教授都不会理会。我听信了他关于 cold email 的这一套理论,并没有很主动积极联系目标院校的教授,因此错过了很多的机会,所以如果需要重来一次申请(Oh god no)的话,这是我能轻易改进的一点。

对此次申请的检讨到此为止,如果你在未来需要申请博士项目并向我询问建议的话,我想我会有下面的建议可以给:

  1. 前期选择学校非常重要:不要吊死在一个院系上,最好多看一下同一学校兄弟院系的教授研究方向,很可能你要做的研究在兄弟院系中才提供。
  2. 一定要做好联系教授的工作:不要被无回复和标准回复气馁,多试试总会收到热情回复。
  3. 不要找中介:即便是我在申请过程中吃尽了苦头,我仍然不建议找中介帮你申请,中介提供的“国外学生文书写作修改”是找的在国外的中国留学生,中介提供的“无 offer 退款”保证则建立在鼓励你申请保底烂校的基础上,中介提供的“套瓷协助”则会把你变成一个死缠烂打无理取闹的学生(过年过节发邮件给教授?得了吧。)在学校选择上,中介提供的建议可能完全不适合你,反正你自己也要仔细阅读并且准备材料的,为什么不完全自己来呢?另外,有一些看起来战果累累的明星中介,签约的学生本来已经是相当优秀,那些学生的背景完全可以保证他们得到满意的申请结果,和中介的工作没有太大关系。
  4. 找外国朋友帮你修改 PS:如果可能,在完成 PS 之后,还是让外国朋友帮你修改一下,中美语言表述习惯相当不同,让 native speaker 帮你修改一些粗糙的表达和奇怪的句子会好太多。
  5. 外向一些:你很优秀,凭什么要藏着掖着?
  6. 准备一份研究综述:准备一份简单的研究综述,写一下你的研究成果和未来的兴趣,如果教授和你约了 Skype 面试,在面试完之后发一份研究综述,显得你有所准备,容易抓住机会。

另外,在申请过程中,Grad Cafe 给了我很多安慰,也是我每天都会刷的一个网站,在这个网站中你可以看到收到 offer/拒信 的人的情况,非常有用。一亩三分地论坛里提供的信息也很有帮助。在写 PS 过程中,Caltech 研究生院提供的指引 tips 对我来说非常重要,我也总结了这些 tips 在这篇博客文章中:写申请材料的 PERSONAL STATEMENT (PS) / STATEMENT OF PURPOSE 非常头疼?这是 CALTECH 给的建议

我最终去了 University of Texas at Austin,拿了他们的 Fellowship,我深知自己能走到今天很大程度上是因为幸运,也知道自己的弱点和不足。申请过程让我再一次全新认识了一次自己,是一个非常宝贵的经历,如果你正在经历或者即将经历这个过程,我真诚地祝你好运。

P.S. 我非常鄙视 Ohio State, Penn State 和 Purdue University 的 Materials Science and Engineering 部门,申请过程中很多难关都可以克服(包括收到拒信),唯独完全不宣布申请结果,不回复问询邮件的处理方式最让人难以忍受。

P.P.S 非常感谢雪梨、东森、无端、墙四和鱼得利对我申请材料提供的建议,我的第一稿子 PS 简直辣眼睛,有你们的帮助我的材料才不至于太惨。

==06/10/2018 UPDATE==

我收到了 Purdue 的拒信,OSU 的正式拒信仍然没有发送(但已经不 care 了

写申请材料的 Personal Statement (PS) / Statement of Purpose 非常头疼?这是 Caltech 给的建议

在去年(2017 年)准备 PhD 项目申请的时候,Personal Statement (PS) / Statement of Purpose 是我最头疼的部分,这一部分的材料非常需要自我审视和总结,也需要将一些人生偶然粉饰成自主选择,相当难过。加上大部分中国学生的语言壁垒,写好一个能看的 PS 非常难。我的师弟彼时在加州理工 Caltech 做暑期研究,他去参加了加州理工研究生院举办的申请文书写作指导并且分享了当时发放的材料和 PPT 给我,我将它们整理成了文字版,希望能给你带来帮助:

Statement of purpose

It is a document submitted as part of a graduate application that describes your abilities, attributes and accomplishments as evidence of your aspirations for pursuing a graduate education and, beyond that, a career in research.

Main Points

  1. What do you want to study
  2. Why do you want to study that topic
  3. What experience to do you have
  4. What to do you intend on doing when you have earned your Ph.D.

Make yours unique

Stand out from the beginning

Keep it concise and focused.

Address ”Fit” with the particular program or lab.

Emphasize interest in solving relevant problems and addressing research questions.

You should be as specific as possible in discussing what interest you. Use examples of particular phenomena, tools, or situations that you find exciting.

Evidence of experience in order of relevance.

The yawn effect

I love science. I love to study it, research it and I want to devote my life to it. Science is the foundation for all that we are.

Don’t tell me you LOVE it or are passionate about it. SHOW me how you are and what you have done.

What to include

Research, research, research

Focus on future

Support future goals with your experience

“Light bulb” moments

What have you done to prepare for this step?

What are your research interests?

How do those research interests mesh with the program to which you are applying?

What will you contribute to the program?

Why this particular group/program/advisor/institution?

Where will this program lead you?

What not to include

Avoid childhood.

Avoid K-12

Generic information that does not tell them anything about you.

A brochure for the school — they know what they are, but how does that impact you.

Start now

Free write — do not expect your first SOP draft to be perfect

Make a brag sheet — toot your own horn

Take time — write, put it away, edit

Research programs — read faculty’s research and take notes

2nd, 3rd, 4th … drafts

Be clear and concise

Have an angle — you may not even know what it is until your define it

Include information about the program/faculty

Think of yourself as a scientist

Every sentence should have value

Every paragraph should be related to research — post, present or future.

Minimize personal information — research focus!

Special circumstances

It is special to you, but not to the review committee

Make a negative a positive — Spin it

Focus on your strengths

Do not make excuses

Proof read

Your advisor

Other faculty

Your application will be reviewed by faculty so show it to faculty beforehand.

Your friends

People from different disciplines

To include faculty or not?

Include faculty with whom you want to work, this shows you have done your homework.

Contact faculty before you apply to build a relationship.

Mention a few fields/areas that you are interested in.

Write specifically for a department: you do now want an overly general statement.

Writer’s block

Pretend you are writing about a friend.

Just keep writing…anything.

Have a friend read it.

Discuss it with an advisor or friend.

Focus on a different part. Can’t write an opening paragraph? Start with the middle.

Red flags

“My parents both have PhDs and have encouraged me to pursue graduate educations.”

“At this point, I am considering a career in academia or industry.”

Vague, unclear , internal dialog

Not written for that program

Too much personal information

Not able to demonstrate experience in field

Check list

  • Clearly state goal.
  • Motivation for applying to graduate school.
  • Relevant experiences and academic coursework that have prepared you for graduate study in the field.
  • Characteristics and strengths that make you particularly well-suited to graduate study.
  • Future career objectives.
  • Decision to apply to that program.
  • Extenuating circumstance that may have resulted in less than ideal academic credentials for graduate school.

Print, edit, revise, recycle, repeat

Print it out.

Edit with pen in hand.

Read it through start to finish and back to start again. Make sure theme is consistent.

Revise throughly for each program… not just the last sentence. Do not rely on find/replace feature.

Netflix 脱口秀专场推荐

新年好哇!

我来推荐几场 Netflix 脱口秀专场。众所周知,Netflix Originals 的电视剧是屎,但 Netflix Originals 的脱口秀专场异常好,大概是因为脱口秀制作不像电视剧一样头绪很多,能 fuck up 的地方比较少,只要脱口秀明星本人不要发挥失常,不要对着别人撸管,做的节目不会差到哪里去。

好了废话少说现在开始推荐:

Dave Chappelle – The Age of Spin: Live at The Hollywood Palladium 

作为脱口秀界当之无愧的元老级人物,Chappelle 阔别 10 年之后的 LA 首秀实在是太棒了。这场讲了关于 OJ 的四个小故事,很多敏感梗,气氛非常 Chappelle. 如果你只看一场,那就看这一场吧!(片头和片尾的旁白,是 Morgan Freeman)

Dave Chappelle – Equanimity & the Bird Revelation

仍然是他,Equanimity 和 Bird Revelation 是一个合辑中的单独两集。作为首集的 Equanimity 的场子更大一些,讲的形式和结构也略微正式一些,笑话和梗的 delivery 行云流水。Chappelle 在这场碰了敏感话题,也有完全严肃的说情梳理环节,非常了不起。而在 Bird Revelation 中,场子更小,给人的感觉更私人 一些,在这场中,Chappelle 讲了 Louis CK 的性骚扰指控,尺度大到晨间新闻和 the view 上会被轮个好几天的地步。也很推荐。

Louis C.K. – Hilarious

非常 Louis 的一场,可能是继 Oh My God 之后路易发挥最棒的一场,忘了 2017 吧!如果你没有听说过 Louis C.K.,先去看 Oh My God,然后再来看这一场。

John Mulaney – New In Town

作为 SNL 的老牌编剧,John Mulaney 曾一度以俊俏的脸庞成名(并不是这样的)这一场他同样讲了很多自己的成长经历,对自己进行了较为精准的总结与嘲笑。整场秀的结构非常非常工整。在 Netflix 上 Mulaney 还有另一场 the comeback kid,也较为好看,但因为那场中间太干了,所以推荐这一场。

Jack Whitehall – At Large

2017 年 Netflix 待 Jack Whitehall 不薄,但他本人也较为争气,交上来的这一场秀和 Travels With My Father 质量都非常高。在这场秀中,Jack Whitehall 可以说使出了浑身解数搞笑,虽然用了很多之前讲过的老梗,但仍然值得一看。最后,In case you are wondering, Jack 是直男。

总之先介绍这五场,说起 Netflix 脱口秀,很多人都会提到 Ali Wong 的小车祸和 Amy Sschumer 的抄袭/尴尬大车祸,其实不是这样的,Netflix 脱口秀的质量非常高,希望能给你带来一些快乐。