shell script一句话下载youtube flv/mp4

id="oHg5SJYRHA0"; curl -L "http://www.youtube.com/get_video?asv=&fmt=18&video_id=$id&t=$(curl -s http://www.youtube.com/watch?v=$id | sed -n 's/.*, "t": "\([^"]*\)", .*/\1/p')" > 1.mp4

其中 fmt=18 表示360p清晰度。主要遇到2个问题,一个是URL里必须有 asv= 才能成功,二是sed的p模式还第一次遇到,而且group匹配括号前后必须有东西才能只输出括号内容,而不是整行内容。sed不适合我啊。。。

参考1, 2。感谢#ubuntu-cn和#linuxfire频道。

Comments