Electronic Moon 电子月亮

Categoryshare

如何使用 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 社区的帮助。

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.

在被污名化之前的中国梦

以下段落全篇摘自张岱《陶庵梦忆》,题为《南镇祈梦》

万历壬子,余年十六,祈梦于南镇梦神之前,因作疏曰:

「爰自混沌谱中,别开天地;华胥国里,早见春秋。梦两楹,梦赤舄,至人不无;梦蕉鹿,梦轩冕,痴人敢说。惟其无想无因,未尝梦乘车入鼠穴,捣虀啖铁杵;非其先知先觉,何以将得位梦棺器,得财梦秽矢?正在恍惚之交,俨若神明之赐。某也躨跜偃潴,轩翥樊笼,顾影自怜,将谁以告?为人所玩,吾何以堪?一鸣惊人,赤壁鹤耶?局促辕下,南柯蚁耶?得时则驾,渭水熊耶?半榻蘧除,漆园蝶耶?神其诏我,或寝或吪;我得先知,何从何去。择此一阳之始,以祈六梦之正。功名志急,欲搔首而问天;祈祷心坚,故举头以抢地。

轩辕氏圆梦鼎湖,已知一字而有一验;李卫公上书西岳,可云三问而三不灵。肃此以闻,惟神垂鉴。」

十六岁的张岱向神明祈祷,想看出命运的判词,用典很多,我就不献丑翻译了。但我觉得如果要说中国梦在被污名化之前长什么样,还得看这篇。

P.S. 大家比较熟悉的《湖心亭看雪》也是这位仙人写的。

分享一个快速制作 LaTeX 插图的方法

闲来无聊,分享一下我排版文章的时候处理插图的方法,本方法适用于 Mac,特别简单。

  1. 使用 PowerPoint 排出你需要图片的位置,确保 PowerPoint 里面调用的插图是矢量图。
  2. 使用 PowerPoint 的输出 PDF 功能,输出当前页面的 PDF。确保输出之前页面上没有出现其它不应该出现的文本框、占位符等。
  3. 输出之后的 PDF 应该是带有白边的,被 LaTeX 调用之后会比较难看,这个时候需要切边,打开 Mac 自带的 terminal,输入 pdfcrop ,然后拖入你需要切边的 PDF 图片。
  4. 同路径会出现一个切了全部白边的新的 PDF 文件,这个时候你就可以在 LaTeX 中调用了。

没了,本来想插图的,但这个超级简单,没啥好插图的。好奇的你应该可以去看一下 pdfcrop 的指南,没准有新收获呢。

Terminal 输出大概如下:

 ~ > pdfcrop /Users/blah/Desktop/yin-blank.pdf 
PDFCROP 1.38, 2012/11/02 - Copyright (c) 2002-2012 by Heiko Oberdiek.
==> 1 page written on `/Users/blah/Desktop/yin-blank-crop.pdf'.

令人惊叹的神奇苹果产品逻辑

 

今天知道一件事情,苹果目前最新的操作系统:macOS Sierra,如果你在升级之后被哄骗着打开了 iCloud Desktop and Documents Folders 功能,然后觉得上传太慢想要关掉它的话,系统会建立空的 Documents 和 Desktop 文件夹,并且认为 iCloud Drive 上面的内容已经是同步完成的,紧接着开始从 iCloud 上拉取尚未同步完成的文档存储到本地。

所以对于一个无辜的用户,心理历程是

1.哎,这个功能不错嘛。

2.哎,上传好慢啊,算了吧。

3.我操,我的文档呢?

4.我操,我桌面上的东西呢?

5.啊啊啊啊啊啊啊啊啊啊啊啊啊

6.啊,好像回来了,错怪苹果了呢!

7.我操!怎么全是空的文件夹呢!

8.啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

太惨了,我觉得人类罪不至此,没有人值得被这么玩弄。

如果您是使用搜索引擎搜索到本文的话,我建议您去看下面路径是不是尚存您原来的文件:

~/users/你的用户名/iCloud Drive (Archive)/Documents

非常抱歉给您带来这样不好的体验了,请问还有什么可以帮到您呢?

不肖子孙之一种

昨天在干活的时候听 podcast,话题是死亡,非常沉重,但死亡近来被谈论很多,也不是什么大事。访谈嘉宾有一个韩美混血女歌手,母亲隐瞒患癌的事实,在发现之后已经中晚期,和大多数人一样,化疗是唯一选择,不是为了活命,纯粹是为了不存在的一线生机。

但女歌手话锋一转,徐徐说到了自己在照顾临终的母亲时的感悟,说了三件事情:

1.母亲是韩国人,美国文化里会给生病的人煮鸡汤,但她从来不知道韩国文化传统中要给生病的人煮什么吃,很担心自己从此会与那一部分的 heritage 分离。

2.在母亲生病之后,自己马上就给男朋友打了电话求婚,并且在母亲去世前一周完成了婚礼,母亲再也不会看不到自己女儿结婚了,可以说非常幸福。

3.在母亲去世之后,她的感受非常 surreal,因为前一个礼拜还在写婚礼贺词,后一个礼拜就开始写母亲的悼词。

有没有发现出了什么问题,这位朋友是将母亲的死亡变成了自己的事情。《百年酒馆》里 Sylvia 确诊乳腺癌之后没有告诉自己的女儿,理由是:”She will make it all about herself.” 并没有给出进一步的解释,但现在看来还是比较清楚的:很多时候人们会鼓励你经历不同的人生,去探索更多不同的可能,但对于即将去世的人,如果还抱着积攒人生经历的心态,未免也太残忍。

PS: Podcast 还是 Lena Dunham 的 Women of the hour Season 2 Episode 9.

I Got Rejected by Apple Music… So I Redesigned It – Startup Grind – Medium

看完之后可以理解为什么作者会被 Apple Music 设计团队给拒绝了,特别是首页这个将字号从 Light-Heavy 改成 Regular-Semibold 的选择,还是相当业余的。大字号大 spacing 和 bold typeface 加上卡片导航,是苹果继 iOS 7 之后的第一次大型 HIG 更新,是以内容为先为主要考虑,在 Apple News 下的表现简直可以起立鼓掌。其次,Apple Music 的精髓或者说唯一竞争力就是 Radio 和 Beats 1 电台,作者居然建议将 Radio 的入口换成 MV ,可以说非常不懂苹果。MV 在一个音乐应用中的使用频率会比 Radio 更高吗?不见得。

总体来说,这篇文章中描述的 ”redesign“ 就是将 Spotify 和 Tinder 的一些特性囊括到 Apple Music 中,非常奇怪,例如双击专辑封面给歌曲点赞,很让人迷惑,我双击的是专辑封面,我给专辑还是歌曲点赞呢?逻辑出现了问题。

当然,文章中唯一可取的就是对 Apple Music Playlist 展示的专辑封面进行统一 VI 的设计,这个我举双手赞成,目前 Playlist 简直是太杂乱了。

Source: I Got Rejected by Apple Music… So I Redesigned It – Startup Grind – Medium

 

Apple’s China Problem – Stratechery by Ben Thompson

The fundamental issue is this: unlike the rest of the world, in China the most important layer of the smartphone stack is not the phone’s operating system. Rather, it is WeChat.

来源: Apple’s China Problem – Stratechery by Ben Thompson

昨天使用了 WordPress 的快速发布功能丢了 comment 文字,简要地说就是 Ben Thompson 和 John Gruber 实在是太不了解中国市场的情况了,而且发文章互相引用和 bolster,非常不负责任,具体的大家可以看姊妹博客发的这篇,讲得很详细:

 

Electronic Moon 电子月亮

Tags