用java實現的簡易版b站影片下載器
因為朋友昨天突然要了這個需求,所以今天透過一整個早上來寫了個簡易版。
因為是用java寫的,而且就一個文件,所以也沒有進行打包和編譯。打包嘛,沒意義。編譯呢,還是讓使用的程式設計師看看原始碼,然後有其它需求自己改改,總共200多行,還有那麼多空行,沒什麼技術難度。
總共檔案為一個啟動檔(java格式),一個設定檔(properties格式),共兩個檔案。
使用前,沒有java的需要java,我是基於java1.8進行開發的。
有java的,然後就在命令列工具裡。 輸入javac 這個java檔的全路徑名(包含.class)。你先換到java檔的目錄也成,然後直接javac 檔名。進行編譯
編譯後,產生一個同名java檔。然後還是在命令列輸入java 檔案全路徑名(不包含.java)。還是你也可以先換到java檔的目錄,然後直接java 檔名進行啟動。
不過啟動前要做一些事。
請將設定檔和啟動檔放到同一目錄下。
然後進行設定檔配置
設定檔有兩個參數
一個是下載路徑,這個大家都懂,想下載到哪裡就配一下。不要忘記在路徑結尾加個斜線。什麼斜線是根據你的系統來。
另外一個是cookie,正是因為這個cookie,所以才能模仿真實訪問來獲取到根據你的帳號設定的預設清晰度來獲取改清晰度的視頻地址。
以google瀏覽器為例,先進入到一個視頻,然後滑鼠右鍵-> 檢查-> application -> Cookies -> https://www.bilibili.com
然後出現一個cookie列表,你就找_uuid 開頭的後面一長串就是這個key的值,複製,然後貼到設定檔裡,就okay了。
有人可能會問,我每次都要配置嘛? ,其實這牽涉到cookie原理。 cookie的保質期是很長的,雖然我沒查看b站的保質期,那也得有一週吧。
你這中途再次造訪b站。他的時間會刷新。也不知道b站的機制是什麼,但應該差不多。複製完成放心用。
你遇到過,你每天登陸b站,都不用登陸帳號密碼吧,然後偶爾會需要,可能是因為b站伺服器的問題,或者,你很久沒有登陸了,過期了。
這個和上面的情況是一樣的。
然後就可以透過之前講過的java 檔案名稱(不包含後綴)來啟動了。
先輸入av號(必選),然後輸入p號,如不輸入p號直接回車,則預設為p=1。
然後進入下載序列,請耐心等待。
B站的視訊格式是為flv格式的,我也沒有進行更改,因為我個人覺得,這個格式很好。很清晰