Firebug 字幕文件JSON地址獲取代碼
更新時間:2009年10月28日 22:05:47 作者:
俗話說,自己動手豐衣足食。直接拿Firebug找到字幕文件地址,下載下來看到是JSON格式的,隨即想到直接用JS輸出字符串就可以轉(zhuǎn)換到srt字幕。
先前看TED視頻,關(guān)于 學(xué)校教育扼殺創(chuàng)造性的視頻。
視頻很好,也有中文字幕等。下面也提供高清版本下載,很是欣喜。
遺憾的是,字幕不提供下載。(或者說我沒有找到)
俗話說,自己動手豐衣足食。直接拿Firebug找到字幕文件地址,下載下來看到是JSON格式的,隨即想到直接用JS輸出字符串就可以轉(zhuǎn)換到srt字幕。
代碼如下,非常簡單的代碼,實用就好,不求效率、安全和邊界問題,只求最快解決我的問題~
不得不說,學(xué)一門編程語言很有意義,不論是什么,都能很方便解決一些實際的問題。這很開心。
JS仔細(xì)說來是一門很強(qiáng)大的語言,處理JSON和XML都很方便,大多數(shù)時候應(yīng)付足夠了。不過也會有力不從心的時候,尤其是對于系統(tǒng)的操作,總有很多缺陷。不過如果算上微軟的JScript的話,也很可以了。曾經(jīng)想學(xué)Python,現(xiàn)在也坦然了,隨便用什么,喜歡就好?;蛟S,這與我不再從事IT相關(guān)行業(yè)有關(guān)吧。夠用就行咯~
//讀取chi_hans文件
$.getJSON("chi_hans",function(json) {
var c=json.captions,o=[];
for (var i=0,l=c.length; i<l; i++) {
o.push(i+1);
//這里的18500是時間偏移
o.push(timeline(c[i].startTime+18500)+" --> "
+timeline(c[i].startTime+c[i].duration+18500));
o.push(c[i].content);
o.push("");
//if (i==5) break;
}
//這里我輸出到一個textarea
$("#output").text(o.join("\r"));
});
//這是根據(jù)JSON里時間得到srt字幕里的時間
function timeline(time) {
t=new Date(time);
return [
leadZero(t.getUTCHours()),
leadZero(t.getUTCMinutes()),
leadZero(t.getUTCSeconds())
].join(":")+","+leadZero3(t.getUTCMilliseconds());
}
//加入前導(dǎo)零
function leadZero(s) {
if (s<10) {
return "0"+s;
}else {
return s;
}
}
//這也是前導(dǎo)零,三位數(shù)的
function leadZero3(s) {
var ret;
if (s<10) {
ret="00"+s;
}else if (s<100) {
ret= "0"+s;
}else {
ret=s;
}
return ret;
}
視頻很好,也有中文字幕等。下面也提供高清版本下載,很是欣喜。
遺憾的是,字幕不提供下載。(或者說我沒有找到)
俗話說,自己動手豐衣足食。直接拿Firebug找到字幕文件地址,下載下來看到是JSON格式的,隨即想到直接用JS輸出字符串就可以轉(zhuǎn)換到srt字幕。
代碼如下,非常簡單的代碼,實用就好,不求效率、安全和邊界問題,只求最快解決我的問題~
不得不說,學(xué)一門編程語言很有意義,不論是什么,都能很方便解決一些實際的問題。這很開心。
JS仔細(xì)說來是一門很強(qiáng)大的語言,處理JSON和XML都很方便,大多數(shù)時候應(yīng)付足夠了。不過也會有力不從心的時候,尤其是對于系統(tǒng)的操作,總有很多缺陷。不過如果算上微軟的JScript的話,也很可以了。曾經(jīng)想學(xué)Python,現(xiàn)在也坦然了,隨便用什么,喜歡就好?;蛟S,這與我不再從事IT相關(guān)行業(yè)有關(guān)吧。夠用就行咯~
復(fù)制代碼 代碼如下:
//讀取chi_hans文件
$.getJSON("chi_hans",function(json) {
var c=json.captions,o=[];
for (var i=0,l=c.length; i<l; i++) {
o.push(i+1);
//這里的18500是時間偏移
o.push(timeline(c[i].startTime+18500)+" --> "
+timeline(c[i].startTime+c[i].duration+18500));
o.push(c[i].content);
o.push("");
//if (i==5) break;
}
//這里我輸出到一個textarea
$("#output").text(o.join("\r"));
});
//這是根據(jù)JSON里時間得到srt字幕里的時間
function timeline(time) {
t=new Date(time);
return [
leadZero(t.getUTCHours()),
leadZero(t.getUTCMinutes()),
leadZero(t.getUTCSeconds())
].join(":")+","+leadZero3(t.getUTCMilliseconds());
}
//加入前導(dǎo)零
function leadZero(s) {
if (s<10) {
return "0"+s;
}else {
return s;
}
}
//這也是前導(dǎo)零,三位數(shù)的
function leadZero3(s) {
var ret;
if (s<10) {
ret="00"+s;
}else if (s<100) {
ret= "0"+s;
}else {
ret=s;
}
return ret;
}
您可能感興趣的文章:
- 教你如何使用firebug調(diào)試功能了解javascript閉包和this
- FireBug 調(diào)試JS入門教程 如何調(diào)試JS
- 使用firebug進(jìn)行調(diào)試javascript的示例
- javascript 在firebug調(diào)試時用console.log的方法
- 使用Firebug對js進(jìn)行斷點(diǎn)調(diào)試的圖文方法
- 使用JavaScript檢測Firefox瀏覽器是否啟用了Firebug的代碼
- Javascript 調(diào)試?yán)?Firebug使用詳解六
- js之WEB開發(fā)調(diào)試?yán)?Firebug 下載
- javascript判斷firebug是否開啟的方法
相關(guān)文章
javascript算法學(xué)習(xí)(直接插入排序)
假設(shè)待排序的記錄存放在數(shù)組R[1..n]中。初始時,R[1]自成1個有序區(qū),無序區(qū)為R[2..n]。從i=2起直至i=n為止,依次將R[i]插入當(dāng)前的有序區(qū)R[1..i-1]中,生成含n個記錄的有序區(qū)。2011-04-04js實現(xiàn)數(shù)據(jù)導(dǎo)出為EXCEL(支持大量數(shù)據(jù)導(dǎo)出)
這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)數(shù)據(jù)導(dǎo)出為EXCEL,支持大量數(shù)據(jù)導(dǎo)出,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03關(guān)于uniapp中onReachBottomDistance屬性的使用
這篇文章主要介紹了關(guān)于uniapp中onReachBottomDistance屬性的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09