2013年1月26日 星期六

Youtube-dl

Short Links:
youtube-dl 環境建構

Youtube-dl 官網: http://rg3.github.com/youtube-dl/

Youtube-dl Example
Youtube-dl
上面這張圖我可是特別開了個新使用者,還把電腦名稱改掉才擷出這張圖。


Mac OS X 10.8.2 的使用者,可以不用去額外安裝 Python。因為它已經內建在系統裡了。之前或之後的版本我不確定,因為我現在正在用的就是 Mac OS X 10.8.2。




關於 youtube-dl 的部分其實很簡單。尤其是對 Mac 來說,因為它不用去安裝 Python。

以目前(Jan. 16th, 2013)的網頁來說,就是把 Full source + docs + binary tarball 那個檔案抓下來解壓縮就是了。裡面會有一個無附檔名的檔案叫做 youtube-dl,那就是主程式。

Mac 終端機指令

在講 youtube-dl 的指令前要先講講終端機的指令。因為下載影片儲存的位置要靠命令碼切換到要儲存的目標位置。 Windows 我不確定可不可以這麼做,不過在 Mac 的終端機是可以直接把檔案/資料夾拖到終端機的視窗裡面,終端機這個程式就會自動幫你把路徑給填上去。所以省掉了不少麻煩。

注意:以下範例中,在「$」及一個空格之後才是命令開頭。而需要空白的地方就是顏色分開的地方。

$ cd ~
$ cd /Users/UserName
$ cd ~/Downloads/Youtube\ Download
$ cd /Users/UserName/Downloads/Youtube\ Download


「~」這個波浪符號就代表了使用者的根目錄,也就是「/Users/UserName」。而「cd」是切換目錄/資料夾的指令,所以上面的第一個跟第二個所代表的意思是一樣的。

再來第三跟第四個例子執行結果是一樣的。我要講的是「資料夾名稱中有空白該怎麼辦?」答案就是像上面那樣的用「\」再加上一個「空白」。不過資料夾或檔案的路徑直接用拖的就好,不需要自行輸入。


youtube-dl 基本指令

假設下載 youtube-dl 主程式時是跟我一樣是直接到存到「下載項目(Downloads)」。之後也是直接解壓縮。這樣程式的位置應該就會是像後面這樣:$ ~/Downloads/youtube-dl/youtube-dl而整個指令是先放 youtube-dl 檔案的路徑,一個空格後用雙引號將要下載的網址包起來。如同下面這樣:$ ~/Downloads/youtube-dl/youtube-dl "https://www.youtube.com/watch?v=9sfOCCrR7vQ"
上面這個例子就會按照程式的預設值去下載這個檔案,也就是抓畫質最好,並以影片 ID 做為檔案名稱。

總結來說,執行步驟是開啟終端機後切換到下載要儲存的目錄下(如範例的 Youtube Download)。再來把 youtube-dl 的檔案拖進視窗讓終端機自己幫你把位置加進去。接著加上一個空格,再來把影片網址複製貼上。完成後就可以按 enter 開始下載了。真的好簡單 orz。程式碼如下:
$ cd ~/Downloads/Youtube\ Download
$ ~/Downloads/youtube-dl/youtube-dl "https://www.youtube.com/watch?v=9sfOCCrR7vQ"


如果要切換到的資料夾不存在,這樣當然會無法切換。你可以用 mkdir 這指令來建立資料夾,或者像個正常人的直接開啟 Finder 切到那邊去建立新資料夾。


youtube-dl 指令參數

接下來的參數設定才是重點。

會把這東西叫做「神器」的原因當然不是因為它可以抓單一檔案。它真正強悍的地方是他可以直接抓整個播放清單。你只要給他播放清單的網址,它就自動幫你抓好好。更甚者,丟給它使用者的賬號連結,它可以直接抓使用者所有上傳並公開的影片

以我在用的指令為例:$ ~/Downloads/youtube-dl/youtube-dl -c -i -o "%(autonumber)s %(upload_date)s %(title)s.%(ext)s" -f 18 "http://www.youtube.com/playlist?list=PL2604E51364FE19EA"
各項參數解釋如下:
程式路徑:~/Downloads/youtube-dl/youtube-dl
啓用續傳:-c
忽略錯誤:-i
自定檔名:-o "%(title)s.%(ext)s"
影片格式:-f 18
目標網址:"URL"

對於播放清單中有缺項的,就必須要用「忽略錯誤(-i)」這項指令。而影片格式「-f 18」所代表的是 Youtube 預設畫質中的 360p MP4 這個規格,使用這個參數會讓程式自動抓這個規格的影片。不過如果來源影片沒有這項規格,程式會自動跳過(或許是因為我有加忽略錯誤)。關於 Youtube 的影片格式編號可以由 youtube-dl 的 Documentation 下方的 Youtube formats 解釋連到 Wikipedia 去看。


後來補充的(Mar. 4th, 2016):
下載 YouTube 1080P DASH 影片

發現可以用 -F 指令列出所有 YouTube 支援的格式後,我原本要用 m4v 跟 m4a 各自分開抓完後再手動用 ffmpeg 合併這方法弄出 1080P 的網路連續劇存至電腦觀看。但是尋找資料途中發現《使用 youtube-dl 備份 YouTube 影片,解決 1080p 高畫質影片無法下載問題》中提到的 137+140 這法子。

$ youtube-dl -c -i -f 137+140 "https://www.youtube.com/playlist?list=PLwt5Muke_LXT_YjH_1gksPlMwO96IHa7P"

但在超短的正文(就是上面那一行啊!)開始之前,要先努力整理環境。不然會遇到下面看似「警告」實為「錯誤」的訊息。

WARNING: You have requested multiple formats but ffmpeg or avconv are not installed. The formats won't be merged.
WARNING: jrxDADOUj3c: writing DASH m4a. Only some players support this container. Install ffmpeg or avconv to fix this automatically.

在搞這個的同時,我正在奮力於下載 OS X El Capitan 安裝檔的大業路上邁進。我當時真的沒想到安裝到外接硬碟上的 El Capitan 也能毀掉本機的作業系統。

為了讓 youtube-dl 能夠順利的吃到 ffmpeg,我搜了好多篇文章,但都不是在講 Mac 的。後來發現《How to Download YouTube Videos in Terminal on a Mac》裡面有提到。
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

Then make youtube-dl executable:
sudo chmod a+x /usr/local/bin/youtube-dl

看起來就是在跟我說把東西丟到 /usr/local/bin 下面去就可以直接在 Terminal 裡面執行了!(而且也可以按 tab 自動完成喔!)
OS X 10.10.3 (Yosemite):
OS X 10.11.2 (El Capitan):

當時沒注意看不知道為何,但在 El Capitan 下需要自行在 local 資料夾下創建 bin 這個資料夾。但放在同位置於 Yosemite 會失效。

這樣下載完 YouTube 1080p 影片及音訊後,自動合併需要用到的 ffmpeg 主程式是需要被放到 bin 下 youtube-dl 才能夠正確執行。

下面這個是舊版就支援,但是我現在才會用的 -F 指令(大小寫 F 有差!)。

$ youtube-dl -c -i -F "https://www.youtube.com/playlist?list=PLwt5Muke_LXT_YjH_1gksPlMwO96IHa7P"

會列出連結所指的影片或播放清單中各個影片支援的格式。
youtube-dl command "-F"


youtube-dl 自定檔案名稱

自定檔名可以看官網的 Output template 裡面有範例以及參數舉例。

前面都沒提到,不過簡單點的話可以用 -t 這個指令直接把影片標題當做檔案名稱。

我目前下載的對象都是英文語系的影片,所以一些關於亂碼問題我還沒遇到。那部分我就沒經驗了。

我常用的是下面這幾個
影片標題
附檔名 %(ext)s
自動遞增數字 %(autonumber)s
上傳日期(YYYYMMDD) %(upload_date)s
上傳日期那像純粹是因為我看的一些歐洲劇,他們日期的排列是「日、月、年」或「月、日、年」。會造成在 Finder /檔案總管排列順序錯誤。這種問題可以靠自動遞增數字解決。

正常來說我在用的時候是用 %(title)s 與 %(ext)s,對於 %(autonumber)s 與 %(upload_date)s 則是視情況而定。


README.md

下面這個按鈕裡的內容其實在下載回來的文件裡也有。就是那個 README.md 檔。




附註

要不是要把那個選項裡的命令粗體化,我可不會一個一個看過去。像它還有限制下載速度、播放清單起始與終止項目,我也根本不知道 youtube-dl 也可以一起下載字幕,還能夠選目標字幕語言!

如果因為下載太多, Youtube 可能會把你擋掉。這時候 youtube-dl 會回傳 error 402。這時候就是開啓 youtube 手動輸入 CAPTCHA 後再繼續下載。所以一開始下載的時候要記得加 -c 這個命令。

還有一點是 youtube 連結網址如果有「&」的話會導致下載失敗,前後用雙引號包起來就可以解決這個問題。


資料來源:
#1GyiWnbJ (Google) [ptt.cc] Re: [詢問] 關於Youtube一次全部下載
http://www.hoyo.idv.tw/wordpress/?p=954

2013年1月4日 星期五

What to do after you jailbreak your iPhone?

Latest update: Jul. 19th, 2016

哈哈哈哈!標題用英文~文法應該沒錯啦。

可以直接從 Cydia 內建的那幾個源安裝的有下面幾個。

軟體源(Sources)
軟體源(Sources)
預設的五個。

可能會加的源:

Short Links:

先從可以直接安裝的開始說。 JB 好了之後,如果開啟 Cydia 的時候它沒有自動更新軟體源,就要自己手動去讓軟體源更新。我這次就遇到了這樣的狀況。

這次我可是要乾淨的重灌呀~第一次灌好了之後我就沒有在完整的重新安裝過 Cydia 的這些東西了。我上次那篇《iPhone 4S 5.1.1 JB 平刷》的時候我是直接把資料從 iTunes 上的備份來還原。盡責的 iTunes 連 JB 的資料一起幫我還原了。所以我當時重刷好,沒有做啥設定,就跟我刷機之前的狀況一樣了。害我當時沒辦法打這篇文章來紀錄資料。哎呀呀呀~真的是太厲害也很麻煩阿。

Activator
“任意位置” > 頂部狀態列向右拖動 > 啟動多工列
向左拖動 > “主畫面”按鈕
“顯示圖示”

BreakThrough
要先加源 http://ftp.sident.net/cydia

功能是讓一些會檢查有沒有 JB 的 App 查不出有 JB,是因為 LINE: Disney Tsum Tsum 才裝的。相同功能的 tweak 有需要 $1.99 的 tsProtector 8(iOS 8+)。

EasySpring2 (iOS 8)
這個是因為手機經常會因為中華電信訊號不好而必須重開機才能夠打、接電話而找到這個 tweak。雖然不是我心目中最理想的狀態,不過算起來還可以用啦。

可以用 Activator 增加手勢啟動介面。這樣就可以選擇重開機、關機等操作,而不需要一直按著手機的電源鍵。

f.lux
調整手機顏色保護眼睛。是按照所在地太陽下山時間來啟動,而不是按照手機亮度感應器來偵測。因為電腦也裝了,所以手機也來湊熱鬧。

不過在使用 GoodReader 的自動捲動功能時,會有頗嚴重的延遲畫面。

iFile ($4.00)
於 2015 年七月三十一日花台幣 127+2 元購買。

當初購買的目的是要用裡面的搜尋功能。玩 LINE: Disney Tsum Tsum 時要換帳號去搜某個資料夾並刪掉就可以重新登入了。後來有用裡面的 Web Browser 功能來把 Tweak.deb 放到手機裡安裝。

InstaTools
增強 Instagram 的功能,主要在用裡面的下載功能。原本是看一篇說能把 Instagram 的文章重新排序,但是用過之後覺得不好用就把那個 Tweak 刪掉,留下這個用下載功能。

LINE NoLastSeen Lite
要先加 https://cydia.hiraku.tw/ 源。是用一個奇怪的方法讓你的聯絡人無法看到你「已讀」。會造成通知消失、未讀計數無法消失、、、等等的副作用。

LINE Sticker Gift Enabler
這個需要用 deb 安裝,因為 tweak 已經被撤下。載點我是從 Mr. MAD 看到的。

LocationFaker9 ($2.99)
於 2016 年四月十七日花台幣 97+1 元購買。

搜了 PTT 的 iPhone 版,裡面都推薦這款。我忘了我當初讓我買下手的原因是什麼。現在大多是用在 Facebook 打卡。因為在外的時候關掉網路,到有 WiFi 的地方才打卡。

缺點還蠻嚴重的。他似乎改得頗底層,就算在 App 內部設成白名單,偵測到的位置照樣被改掉。我自己測出來的有尋找我的 iPhone(Find My iPhone)、尋找我的朋友(Find My Friends)、 相機。
  • Find My iPhone:我把「設定」設成白名單,在其他裝置使用尋找我的 iPhone 看到的手機所在地點是假的。
  • Find My Friends:這個問題是啟用假位置,就算設到白名單。程式裡聯絡人在下方顯示的位置是正確的,但是在地圖上的點會全部都被標到同一個位置。
  • 相機:我把「相機」設到白名單,但是拍出來的照片顯示的 GeoLocation 仍是被修改過的。

這個也讓我不高興。

PokemonPatch
很紅的遊戲,但是台灣還沒開放。而且這遊戲會偵測 JB,上面提到的 BreakThrough 繞不過。先新增源 http://www.williamlcobb.com/repo/,再找 PokemonPatch。

TetherMe for iOS8+ ($4.99)
於 2014 年四月十八日花台幣 151+2 元購買。

我有先用過一陣子糟糕版(iOS 5 JB 時期),升到 iOS 7 JB 後才直接買正版來用。用途是把個人熱點(Personal Hotspot)的選項給開出來,因為中華電信 mCool 方案不允許分享網路。

發現升到 iOS 8 後,在一年半內購買的用戶可以不需重買直接更新,感覺還蠻不錯的。作者是說因為 Apple 大改,所以他要重新賣。

3G Unrestrictor 5 ($3.99)
於 2015 年十一月十日花台幣 131+2 元購買。

用途是讓必須連到 Wi-Fi 才有的功能在只有行動網路時就用該功能 App。像是 Tweetbot 的 Streaming Over Wi-fi 功能,還有內建的「照片串流」功能。

不過我的實測結果,這功能不支援 App Store 的自動更新。

我當初沒辦法測試這個 App 就直接買。目的是想要用「照片串流」跟「App Store」自動更新,結果只能用一半。我是有點不高興。


Apple File Conduit 2
想要用 iTool 之類的東西直接檢視 iOS 的檔案路徑系統,在 iOS 7.1.X 之後就要改裝這東西。在 7.0.6 以前的版本可以裝 afc2add。

以上的這些東西都是免費的。只要用預設的軟體源就可以找到並免費安裝。

Manually remove Setting's OTA Update Badge (JB required)
現在 JB 後都會自動停用 OTA 更新。但如果是先看到 OTA 更新才要 JB 的話,就會需要這招了。

在 JB 後的檔案系統找到下方所列的檔案。
/System/Library/CoreServices/SystemVersion.plist
備份一份保留後才修改。

將 ProductBuildVersion 後所列的版號改為 Apple 當前最新的版本。存檔,覆蓋掉原檔案,重新啟動裝置。

這時「設定」的號碼就消失了。這樣就可以改回原本的版號(可以直接用剛剛備份的檔案)再將檔案再一次覆蓋回去並重新啟動裝置即可。

<key>ProductBuildVersion</key>
<string>12B410</string>
<key>ProductCopyright</key>
<string>1983-2014 Apple Inc.</string>
<key>ProductName</key>
<string>iPhone OS</string>
<key>ProductVersion</key>
<string>8.1</string>

以 iOS 8.1 (12B410) 出現 iOS 8.1.1 (12B435) 的更新為例,就是把字串 12B410 改成 12B435 後,再改回 12B410。

相關版號可以查 ipsw 之類的資料應該就找的到了。我當時是看 TSSstatus API - Status 這網頁找版號的。



也就是接下來的內容,嘿嘿嘿。








咳咳咳!既然這樣該裝的東西都裝完了。接下來我要裝的就跟 Cydia 沒關係啦。

mCool.mobileconfig 這檔案是有用中華電信的 mCool 才需要裝的。也就是因為用 mCool,所以才會需要用 TetherMe 來開啟「個人熱點」。不然用預設 Internet 的 APN 是不需要裝 TetherMe 就能夠開啟「個人熱點」了。



好啦!這樣就沒啦~ JB 後該做的設定就這些。其他都跟 JB 沒關啦。

我用 CSS 做的大顆 Enable 與 Disable。它不能按就是了。


因為當時圖片高度是用 28px 來做,所以那些按鈕只要字型小於 22px 就會跑版(默~)。所以我只好把那個 fieldset 裡頭的字型加大啦~


改好了。現在高度改成 22px。

公開版:http://royhsiasdairy.blogspot.com/2013/01/what-to-do-after-you-jailbreak-your.html