作者 |
主題 |
dc
管理員
性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32 |
(第 1 篇) 【原創】Netflix 字幕下載 並將 vtt 轉 srt
首先需要有 Netflix 的帳號才能繼續往下走喔~
使用 Chrome 瀏覽器
安裝腳本 Netflix - subtitle downloader
網址是 https://greasyfork.org/zh-TW/scripts/26654-netflix-subtitle-downloader
腳本安裝完後我們回到 Netflix 找影片播放
選右下角的字幕,可以看到多了 Netflix subtitle downloader 這個選項
Download subs for this episode 是下載單集字幕,全部的語言都會下載
Download subs from this ep till last available 是下載全部影集的字幕,全部的語言都會下載。他會自動打開其他集數的影片,並下載字幕打包成 zip 檔。
全部抓完後會打包
zh-Hant.vtt 為繁體中文字幕,可以看到是 WEBVTT 字幕
離線播放的時候無法直接使用必須轉成 srt 格式,在 linux 模式底下的話與 vtt 字幕同一個目錄裡建立 vi t.sh 填入下面的 script
代碼: | rsync -a *.vtt srt/
cd srt
for f in *.vtt; do
base=`basename $f .vtt`
mv $f $base.srt
done
find ./*.srt -exec sh -c 'del=`head -n 30 {} | grep -n "NOTE /SegmentIndex" | cut -d":" -f 1` ; del+="d" ; sed -i "1,$del;s/<c.[a-z]*>//g;s/<\/c.[a-z]*>//g;s/<c.[a-z_]*>//g;s/<\/c.[a-z_]*>//g;s/^&[a-z]*;//g;s/position:.*//g" {}' \;
|
./t.sh 執行
之後到下一層的 srt 目錄打開檔案,可以看到已經轉成 srt 格式了。
為什麼要抓取字幕呢?因為離線下載的字幕是跟著影片解析度在一起的,例如 星艦奇航記:重返地球 Star Trek Voyager 解析度是 480P
如下圖下方是內建的字幕,解析度就是 480P 看得很辛苦。但是外掛字幕的話如下圖上方就非常的清晰不會被影片解析度限制。
本帖由dc最後編輯於2020-02-21 08:13
Your mind to my mind,
your thought to my thought |
發表時間:2020-02-20 07:42 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32 |
(第 2 篇)
更進階一點的處理方式為
例如
目錄結構為
影集1
|-Episode 1.mp4
|-Episode 2.mp4
|-Episode 3.mp4
|-字幕.zip
影集2
|-Season 1
| |-01 xx.mp4
| |-02 xx.mp4
|-Season 2
| |-01 xx.mp4
| |-02 xx.mp4
|-字幕.zip
如果離線檔案 mp4 只有標題沒有數字編號的話,必須自己加上 01 02 03 才有辦法對應字幕的 S01E01 S01E02 S01E03
我們要將字幕解壓縮 -> 轉成 srt 格式 -> 放到對應的影集資料夾底下的話,可以在影集的根目錄下 vi t.sh
代碼: | #!/bin/bash
find ./*.zip -exec sh -c 'echo "Unzip the file {}" ; /usr/bin/7z e -ovtt "{}" ; echo "Unzip the file {} is OK"' \;
cd vtt ; echo "Rsync vtt to srt" ; rsync -a *.vtt ../srt ; cd ../srt ; echo "Rename vtt to srt"
for f in *.vtt; do
base=`basename $f .vtt`
mv $f $base.srt
done
echo "Change vtt format to srt"
find ./*.srt -exec sh -c 'del=`head -n 30 "{}" | grep -n "NOTE /SegmentIndex" | cut -d":" -f 1` ; del+="d" ; sed -i "1,$del;s/<c.[a-z]*>//g;s/<\/c.[a-z]*>//g;s/<c.[a-z_]*>//g;s/<\/c.[a-z_]*>//g;s/^&[a-z]*;//g;s/position:.*//g" "{}"' \;
cd ..
find ./ -type f | grep -E "\.mp4" | grep -v "@eaDir" | sort -k1,1 -k2n | awk -v awk_newname="newname.txt" 'BEGIN {FS="/"}
{
if ( ("" != $2) && ("" == $3) )
{
delext=$2
gsub(/.mp4/,".srt",delext)
print delext >> awk_newname
}
}
'
find ./ -type f | grep -E "\.mp4" | grep -v "@eaDir" | sort -k2,2 -k3n | awk -v awk_newname="newname.txt" 'BEGIN {FS="/"}
{
if ( ("" != $2) && ("" != $3) && ("" == $4) )
{
delext=$3
gsub(/.mp4/,".srt",delext)
print $1"/"$2"/"delext >> awk_newname
}
}
'
find ./ -type f | grep -E "\zh-Hant.srt" | sort >> oldname.txt
line1=`cat ./newname.txt | wc -l`
line2=`cat ./oldname.txt | wc -l`
if [ $line1 -ne $line2 ] ; then
echo "Rename txt Inconsistent"
exit
fi
loopTimes=1
echo "Copy zh-Hant.srt to Movie Dir"
while read fileName
do
lineNum=`echo $loopTimes"p"`
newFileName=`sed -n $lineNum newname.txt`
echo "cp $fileName $newFileName"
cp "$fileName" "$newFileName"
loopTimes=`expr $loopTimes + 1`
done < oldname.txt
rm newname.txt
rm oldname.txt
|
然後 ./t.sh
他就會幫你轉好囉~
本帖由dc最後編輯於2020-02-22 21:44
Your mind to my mind,
your thought to my thought |
發表時間:2020-02-21 23:40 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32 |
(第 3 篇)
加上註解放上 github
https://github.com/iamdco/Netflix_vtt_to_srt
本帖由dc最後編輯於2020-03-05 10:36
Your mind to my mind,
your thought to my thought |
發表時間:2020-03-05 10:36 |
|
34461189
註冊會員
性別:男
來自:
發表總數:1
註冊時間:2020-03-27 17:43 |
(第 4 篇)
出現錯誤,無法安裝
本帖所帶附件:SharedScreenshot.jpg (45.98K) 本附件被下載次數: 2
|
發表時間:2020-03-27 17:45 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32 |
(第 5 篇)
34461189在大作中提到:
出現錯誤,無法安裝 |
是什麼東西無法安裝?是這個嗎?
>>安裝腳本 Netflix - subtitle downloader
這個不是我開發的,相關問題請詢問該套件的製作者喔。或者上網 google 謝謝~
Your mind to my mind,
your thought to my thought |
發表時間:2020-03-28 15:01 |
|
sfkljl
註冊會員
性別:男
來自:
發表總數:1
註冊時間:2020-05-26 10:39 |
(第 6 篇)
how can i download netflix films offline ,only for self use?
|
發表時間:2020-05-26 10:43 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32 |
(第 7 篇)
腳本一直有持續在更新
有多一些細部設定,但方式還是沒變
Your mind to my mind,
your thought to my thought |
發表時間:2020-12-14 16:17 |
|
roroyasolo
註冊會員
性別:男
來自:
發表總數:1
註冊時間:2021-01-07 09:50 |
(第 8 篇) 【討論】
下載下來,裡面是空的,沒有檔案
|
發表時間:2021-01-07 09:51 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32 |
(第 9 篇)
腳本在 2021/09/09 更新為 4.0.0
https://greasyfork.org/zh-TW/scripts/26654-netflix-subtitle-downloader
主要是 Netflix 網頁改版,目前字幕不能全部一次下載了。
只能暫時一個一個下載。
把這項改成 on 才會把標題存進去 Add episode title to filename: on
按下 Download subs for this episode 一集一集存字幕
存下來會像這樣
檔案結構要自己排一下 12345 不然 cp 時順序會錯
xx的巨人
|-第 1 季
| |-xx的巨人_S01E01_xx.mp4
| |-xx的巨人_S01E02_xx.mp4
|-第 2 季
| |-xx的巨人_S02E26_xx.mp4
| |-xx的巨人_S02E27_xx.mp4
|-第 3 季:第 1 部
| |-xx的巨人_S03E38_xx.mp4
| |-xx的巨人_S03E39_xx.mp4
|-第 3 季:第 2 部
| |-xx的巨人_S04E50_xx.mp4
| |-xx的巨人_S04E51_xx.mp4
|-第 4 季:最終季
| |-xx的巨人_S05E60_xx.mp4
| |-xx的巨人_S05E61_xx.mp4
|-xx的巨人.S01E01.給二千年後的你.zip
|-xx的巨人.S01E02.那一天.zip
一樣把全部的 zip 檔放進去執行 第 2 篇 t.sh 會把對應的 srt 檔放去對應的地方,不用修改~
本帖由dc最後編輯於2021-09-10 13:10
Your mind to my mind,
your thought to my thought |
發表時間:2021-09-10 10:42 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32 |
(第 10 篇)
腳本在 2021/10/3 更新 4.1.0
恢復了 Download subs from this ep till last available 下載全部影集的字幕的功能
Your mind to my mind,
your thought to my thought |
發表時間:2021-12-03 01:06 |
|
所有時間均為GMT+8, 現在是2024-04-26 03:02 |