2016年10月31日 星期一

Tools : youtube-dl 下載影片的利器 part 4

2016年10月31日 星期一
關於 youtube-dl 這個強大的工具,之前寫過三篇介紹(詳見文末的相關文章),再追加一篇,如何連字幕一起下載。

youtube-dl 關於字幕的參數有:

  • --write-sub
  • --write-auto-sub
  • --all-subs
  • --list-subs
  • --sub-format FORMAT
  • --sub-lang LANGS
  • --embed-subs
  • --convert-subs FORMAT

以 YouTube 的影片來說,它的字幕 format 目前提供 vtt 和 ttml 兩種格式,我們可以利用底下指令來查詢:

youtube-dl --list-subs 影片網址

不過,我常用的影片播放程式 VLC 好像沒有支援 vtt 格式,沒關係,youtube-dl 的好朋友 ffmpeg 可以幫我們轉換為 VLC 支援的 srt 格式字幕檔。

所以,如果想在 YouTube 影片下載以後,順便:
  • 下載字幕檔。(使用 --write-sub --all-subs 參數)
  • 轉為 srt  格式的字幕檔。(使用 --convert-subs srt 參數)
  • 將字幕嵌入影片檔中。(使用 --embed-subs 參數)
就需要先下載底下兩支程式:
並將兩支程式放在同一個目錄中來搭配使用。

最後執行以下指令:

youtube-dl --write-sub  --all-subs --embed-subs --sub-format srt  影片網址

即可下載帶有字幕的 YouTube 影片。

什麼!下指令很麻煩!

好吧!我將之前的「Youtube-影片下載.vbs」改了一下,將下載所有字幕的參數加進去了,只要將這個有下載字幕的版本和 youtube-dl 及 ffmpeg 放在一起,就能變成有字幕的 YouTube mp4 影片囉!

檔案下載



相關文章



2016年10月30日 星期日

Mac : 依日期分目錄歸檔的 shell script

2016年10月30日 星期日
幫同事救行動碟中的資料,由於救回的檔案幾乎只剩一堆編號,原來的檔名都不見了,加上資料量大,於是想順便幫忙把照片檔案按日期分別置入不同的資料夾中。找到在 Ask MetaFilter 中的這篇文章:


裡面是利用 shell script 去呼叫 Mac OS X 中的底下幾個指令來達成按日期歸檔的:

  • 「ls -1」:列出目錄中所有的檔案檔名。
  • 「mdls」:列出檔案的 metadata contents。
  • 「grep CreationDate」:只顯示帶有「CreationDate」的那行資料。
  • 「awk '{print $3}'」:以空白當分隔符號,取出第三個欄位的資料(年月日)。
  • 「export date=」:將找出的日期設為「date」的環境變數

以此來判斷日期的目錄是否存在,已存在就執行「cp」的指令複製檔案,不存在則先利用「mkdir」指令來建立目錄後,再執行檔案複製。

因為我已經將救回的檔案備份到另一顆隨身碟中了,所以在備份目錄中的操作,將原網頁中的指令改用「mv」指令,也就是用搬移來取代複製。

另外,此次救援的主要對象是照片和影片檔案,所以在列出檔案清單的「ls」指令後面加上了可能的副檔名「*.jpg *.nef *.mp4 *.mpg *.avi *.mov」來過濾,只搬移那些副檔名的檔案,其它的都不處理。

底下是依日期分目錄歸檔的 shell script :

#!/bin/bash
for image in `ls  -1 *.jpg *.nef *.mp4 *.mpg *.avi *.mov`; do export date=`mdls $image | grep CreationDate | awk '{print $3}'`;
if [ -d ./$date/ ]
then
mv $image ./$date/
else
mkdir ./$date/ && mv $image ./$date/
fi; done
exit

參考文章:

 
雄::gsyan © 2009. Design by Pocket