【免費註冊】 【會員登入】 【個人資料】 【會員列表】 【論壇幫助】 【論壇搜尋】 【登出論壇】

∮Ω奧米加空間∮
∮Ω奧米加空間∮»技術文件區»【原創】Netflix 字幕下載 並將 vtt 轉 srt

訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆
作者 主題    
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的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:114.*.*.* 編輯  引言回覆 
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的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:118.*.*.* 編輯  引言回覆 
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
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:118.*.*.* 編輯  引言回覆 
34461189
註冊會員



性別:男
來自:
發表總數:1
註冊時間:2020-03-27 17:43
(第 4 篇)

出現錯誤,無法安裝

本帖所帶附件:SharedScreenshot.jpg (45.98K)
本附件被下載次數: 2





發表時間:2020-03-27 17:45
34461189的個人資料 傳送郵件給34461189 34461189發表的所有文章 送出悄悄話給34461189 IP:114.*.*.* 編輯  引言回覆 
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
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:118.*.*.* 編輯  引言回覆 
sfkljl
註冊會員



性別:男
來自:
發表總數:1
註冊時間:2020-05-26 10:39
(第 6 篇)

how can i download netflix films offline ,only for self use?




發表時間:2020-05-26 10:43
sfkljl的個人資料 sfkljl發表的所有文章 送出悄悄話給sfkljl IP:219.*.*.* 編輯  引言回覆 
dc
管理員



性別:男
來自:瓦肯星
發表總數:10730
註冊時間:2002-05-07 16:32
(第 7 篇)

腳本一直有持續在更新


有多一些細部設定,但方式還是沒變







Your mind to my mind,

your thought to my thought
發表時間:2020-12-14 16:17
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:1.*.*.* 編輯  引言回覆 
roroyasolo
註冊會員



性別:男
來自:
發表總數:1
註冊時間:2021-01-07 09:50
(第 8 篇) 【討論】

下載下來,裡面是空的,沒有檔案




發表時間:2021-01-07 09:51
roroyasolo的個人資料 傳送郵件給roroyasolo roroyasolo發表的所有文章 送出悄悄話給roroyasolo IP:2001:b400:e78d:2fe3: 編輯  引言回覆 
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的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:114.*.*.* 編輯  引言回覆 
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
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:114.*.*.* 編輯  引言回覆 
所有時間均為GMT+8, 現在是2024-04-26 03:39    
訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆

快速回覆
主題 ( 回覆文章可以不輸入標題 )
URLs自動分析
有回覆時郵件通知
禁用表情符號
使用簽名

<聯絡我們 - OMEGA - 控制面板>

Powered by Centaur & Joksky & DC, ver 2003.08.14
Copyright ©2002-2008 PHPY.COM


頁面生成時間:0.0084750652313232