1try{!function(){var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},e=(new t.Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="241e41cd-5d3e-4620-8003-d809a6b09048",t._sentryDebugIdIdentifier="sentry-dbid-241e41cd-5d3e-4620-8003-d809a6b09048")}()}catch(t){}"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[65045],{34676:(t,e,n)=>{n.d(e,{D:()=>s});var r=n(15333),a=n(17714),i=n(18887);let s=(0,r.v)()((0,a.Zr)((t,e)=>({fileSettings:{},getLineLength:function(t){var n,r;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,{fileSettings:i}=e();return null!=(r=null==(n=i[t])?void 0:n.lineLength)?r:a},setLineLength:(e,n)=>{t(t=>({fileSettings:{...t.fileSettings,[e]:{...t.fileSettings[e],lineLength:n}}}))}}),{name:"subtitle-settings",storage:(0,a.KU)(()=>i.Ar)}))},65045:(t,e,n)=>{n.d(e,{Qh:()=>o,RG:()=>c,xD:()=>s});var r=n(65253),a=n(34676);function i(t,e){return t.map((t,n)=>t.sentences.map((r,a)=>({id:a,pindex:n,...r,speaker:t.speaker,speaker_name:t.speaker_name,start:r.start+e,end:r.end+e}))).flat()}let s=t=>{var e,n;return(null==(n=t.segments)||null==(e=n[0])?void 0:e.srt)||t.srt||""},o=t=>{var e,n;let r=null==(n=t.segments)||null==(e=n[0])?void 0:e.utterances;return(null==r?void 0:r.length)?r:t.utterances||[]};class c{formatTime(t){let e=Math.floor(t/3600),n=Math.floor(t%3600/60),r=Math.floor(t%60);return e>0?"".concat(e,":").concat(n.toString().padStart(2,"0"),":").concat(r.toString().padStart(2,"0")):"".concat(n,":").concat(r.toString().padStart(2,"0"))}formatSrtTime(t){let e=Math.floor(t/3600),n=Math.floor(t%3600/60),r=Math.floor(t%60),a=Math.floor(t%1*1e3);return"".concat(e.toString().padStart(2,"0"),":").concat(n.toString().padStart(2,"0"),":").concat(r.toString().padStart(2,"0"),",").concat(a.toString().padStart(3,"0"))}convertSrtToVtt(t){if(!t||""===t.trim())return"WEBVTT\n\n";let e=t.trim().split(/\n\s*\n/),n="WEBVTT\n\n";return e.forEach(t=>{let e=t.trim().split("\n");if(e.length>=3){let t=e[1],r=e.slice(2),a=t.replace(/,/g,".");n+="".concat(a,"\n").concat(r.join("\n"),"\n\n")}}),n}getSentenceGroup(){var t;return(null==(t=this.segments)?void 0:t.length)&&this.segments[0].paragraphs||[]}getParagraphSegments(){return this.segments.reduce((t,e)=>{var n;return(null==(n=e.paragraphs)?void 0:n.length)&&t.push(...i(e.paragraphs,e.start_time)),t},[])}getTrackName(){return this.file.is_subtitle?"åå¹çæ":this.file.is_url?"URL转å½":this.file.is_record?"å½é³è½¬å½":"æä»¶è½¬å½"}getSegments(){var t;return(null==(t=this.segments)?void 0:t.length)?this.segments.reduce((t,e)=>{if(e.segments&&e.segments.length>0){var n,r;let a=(n=e.segments,r=e.start_time,n.map(t=>({...t,start:t.start+r,end:t.end+r})));t.push(...a)}else if(e.paragraphs&&e.paragraphs.length>0){let n=i(e.paragraphs,e.start_time);t.push(...n)}else e.transcription&&t.push({id:t.length,pindex:0,text:e.transcription,start:e.start_time||0,end:e.duration||0});return t},[]):this.transcription?[{id:0,pindex:0,text:this.transcription,start:0,end:0}]:[]}getTranscript(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"plain",e=this.getSentenceGroup(),n="formatted"===t||"formatted_time"===t,r="time"===t||"formatted_time"===t;if(null==e?void 0:e.length){let t=void 0!==e[0].speaker;return e.map(e=>{let a=t?e.speaker_name||"Speaker ".concat(e.speaker+1):"",i=e.sentences.map(t=>{let e=r?"(".concat(this.formatTime(t.start),") "):"";return"".concat(e).concat(t.text)}).join(n?"\n":" ");return"".concat(t?n?"".concat(a,"\n"):"".concat(a," "):"").concat(i).concat(n?"\n\n":"")}).join("").trim()}let a="",i=this.getSegments();if(0===i.length)return a=this.transcription||"","formatted"===t?a.split(/[.!?]+/).filter(Boolean).map(t=>t.trim()).join("\n"):a.trim();for(let e=0;e<i.length;e++){let n=i[e],r=n.text.trim();"plain"===t?a+=r+" ":"formatted"===t?a+=r+"\n":"time"===t?a+="(".concat(this.formatTime(n.start),") ").concat(r," "):"formatted_time"===t&&(a+="(".concat(this.formatTime(n.start),") ").concat(r,"\n"))}return a.trim()}getSrtContent(t){let e=s(this),n=o(this),i=()=>{var t;return(null==(t=this.file)?void 0:t.id)?a.D.getState().getLineLength(this.file.id):8};if(n.length>0)return r.Ay.toSRT(n,i());if(this.file.is_subtitle&&e.length>0)return(0,r.YM)(e);let c=this.getParagraphSegments();if(0===c.length&&e.length>0)return(0,r.YM)(e);let l=(c.length>0?c:this.getSegments()).map((e,n)=>{let r=this.formatSrtTime(e.start),a=this.formatSrtTime(e.end),i=0!==n||t?e.text:"(Transcribed by https://whispertranscribe.ai Upgrade to unlimited to remove this message.)".concat(e.text);return"".concat(n+1,"\n").concat(r," --\x3e ").concat(a,"\n").concat(i,"\n")}).join("\n");return(0,r.YM)(l)}getVttContent(t){let e=s(this),n=o(this),i=()=>{var t;return(null==(t=this.file)?void 0:t.id)?a.D.getState().getLineLength(this.file.id):8};if(n.length>0)return r.Ay.toVTT(n,i());if(this.file.is_subtitle&&e.length>0)return this.convertSrtToVtt(e);let c=this.getParagraphSegments();if(0===c.length&&e.length>0)return this.convertSrtToVtt(e);let l=c.length>0?c:this.getSegments(),h="WEBVTT\n";return h+l.map((e,n)=>{let r=this.formatSrtTime(e.start).replace(",","."),a=this.formatSrtTime(e.end).replace(",","."),i=0!==n||t?e.text:"(Transcribed by https://whispertranscribe.ai Upgrade to unlimited to remove this message.)".concat(e.text);return"".concat(r," --\x3e ").concat(a,"\n").concat(i,"\n")}).join("\n")}getCsvContent(t){let e=this.getSegments(),n="start,end,speaker,speaker_name,text\n";return n+e.map((e,n)=>{let r=this.formatSrtTime(e.start),a=this.formatSrtTime(e.end),i=0!==n||t?e.text:"(Transcribed by https://whispertranscribe.ai Upgrade to unlimited to remove this message.)".concat(e.text),s=void 0!==e.speaker?"".concat(e.speaker):"",o=void 0!==e.speaker?e.speaker_name||"Speaker ".concat(e.speaker+1):"";return'"'.concat(r,'","').concat(a,'","').concat(s,'","').concat(o.replace(/"/g,'""'),'","').concat(i.replace(/"/g,'""'),'"')}).join("\n")}getStlContent(t){let e=this.getSrtContent(t);return this.convertSrtToStl(e)}convertSrtToStl(t){let e=t.split("\n"),n="";for(let t=0;t<e.length;t++){let r=e[t].trim();if(!r){n+="\n";continue}
1r.includes("--\x3e")?n+=r.replace(/,/g,":").replace(/(\d{2}):(\d{2}):(\d{2}):(\d{3})/g,(t,e,n,r,a)=>{let i=Math.floor(parseInt(a)/1e3*25).toString().padStart(2,"0");return"".concat(e,":").concat(n,":").concat(r,":").concat(i)})+"\n":n+=r+"\n"}return n}getJsonContent(t){let e=this.getSegments();return{metadata:{filename:this.file.filename,duration:this.total_duration,language:this.language,transcribedBy:"WhisperTranscribe.ai"},segments:e.map((e,n)=>{let r={id:n+1,start:e.start,end:e.end,startFormatted:this.formatSrtTime(e.start),endFormatted:this.formatSrtTime(e.end),text:0!==n||t?e.text:"(Transcribed by https://whispertranscribe.ai Upgrade to unlimited to remove this message.)".concat(e.text)};return void 0!==e.speaker?{...r,speaker:e.speaker,speaker_name:e.speaker_name||"Speaker ".concat(e.speaker+1)}:r})}}getEdlContent(t){let e=this.getSegments(),n="TITLE: "+this.file.filename+"\n";return n+="FCM: NON-DROP FRAME\n\n",e.forEach((e,r)=>{let a=Math.floor(24*e.start),i=Math.floor(24*e.end),s=0!==r||t?e.text:"(Transcribed by https://whispertranscribe.ai Upgrade to unlimited to remove this message.)".concat(e.text);n+="".concat((r+1).toString().padStart(3,"0")," AX V C ").concat(a," ").concat(i," ").concat(a," ").concat(i,"\n"),n+="* FROM CLIP NAME: ".concat(this.file.filename,"\n"),n+="* COMMENT: ".concat(s,"\n\n")}),n}getPremiereXmlContent(t){let e=this.getSegments(),n='<?xml version="1.0" encoding="UTF-8"?>\n';return n+='<xmeml version="4">\n',n+=" <project>\n",n+=" <name>".concat(this.file.filename,"</name>\n"),n+=" <children>\n",n+=" <bin>\n",n+=" <children>\n",n+=" <clip>\n",n+=" <name>".concat(this.file.filename,"</name>\n"),n+=" <duration>7200</duration>\n",n+=" <rate>\n",n+=" <timebase>30</timebase>\n",n+=" <ntsc>FALSE</ntsc>\n",n+=" </rate>\n",n+=" <marker>\n",e.forEach((e,r)=>{let a=Math.floor(30*e.start),i=0!==r||t?e.text:"(Transcribed by https://whispertranscribe.ai Upgrade to unlimited to remove this message.)".concat(e.text);n+=" <marker>\n",n+=" <name>Marker ".concat(r+1,"</name>\n"),n+=" <comment>".concat(i,"</comment>\n"),n+=" <in>".concat(a,"</in>\n"),n+=" </marker>\n"}),n+=" </marker>\n",n+=" </clip>\n",n+=" </children>\n",n+=" </bin>\n",n+=" </children>\n",n+=" </project>\n",n+="</xmeml>"}getFcpXmlContent(t){let e=this.getSegments(),n='<?xml version="1.0" encoding="UTF-8"?>\n';return n+="<!DOCTYPE fcpxml>\n",n+='<fcpxml version="1.8">\n',n+=" <resources>\n",n+=' <format id="r1" name="FFVideoFormat1080p30" frameDuration="1/30s"/>\n',n+=" </resources>\n",n+=" <library>\n",n+=' <event name="Transcription">\n',n+=' <project name="'.concat(this.file.filename,'">\n'),n+=' <sequence format="r1">\n',n+=" <spine>\n",e.forEach((e,r)=>{let a=e.start,i=e.end-e.start,s="".concat(Math.floor(a),"s/").concat(Math.floor(a%1*30),"/",30,"s"),o="".concat(Math.floor(i),"s/").concat(Math.floor(i%1*30),"/",30,"s"),c=0!==r||t?e.text:"(Transcribed by https://whispertranscribe.ai Upgrade to unlimited to remove this message.)".concat(e.text);n+=' <marker start="'.concat(s,'" duration="').concat(o,'" value="').concat(c.replace(/"/g,"""),'"/>\n')}),n+=" </spine>\n",n+=" </sequence>\n",n+=" </project>\n",n+=" </event>\n",n+=" </library>\n",n+="</fcpxml>"}constructor(t,e,n,r,a,i,s,o,c,l,h){this.file=t,this.segments=e,this.utterances=n,this.status=r,this.language=a,this.transcription=i,this.total_duration=s,this.whisper_api_duration=o,this.error_text=c,this.srt=l,this.rid=h}}},65253:(t,e,n)=>{function r(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"HH:mm:ss,SSS",n=new Date(1e3*t),r=n.getUTCHours().toString().padStart(2,"0"),a=n.getUTCMinutes().toString().padStart(2,"0"),i=n.getUTCSeconds().toString().padStart(2,"0"),s=Math.floor(n.getUTCMilliseconds()).toString().padStart(3,"0");return e.replace("HH",r).replace("mm",a).replace("ss",i).replace("SSS",s)}n.d(e,{Ay:()=>g,YM:()=>s,mi:()=>o});let a=/[\u200B-\u200D\uFEFF]/g,i=/(\d{2}:\d{2}:\d{2},\d{3})[ \t]*-->[ \t]*(\d{2}:\d{2}:\d{2},\d{3})/g,s=t=>{let e=(t=>{let e=t.split("\n");for(;e.length>0;){var n;let t=0;for(;t<e.length&&""===e[t].trim();)t++;let r=null==(n=e[t])?void 0:n.trim();if(!r||"NOTE"!==r&&!r.startsWith("NOTE "))return e.slice(t).join("\n");let a=t+1;for(;a<e.length&&""!==e[a].trim();)a++;for(;a<e.length&&""===e[a].trim();)a++;e=e.slice(a)}return""})(t.replace(/\r\n?/g,"\n").replace(a,"")).replace(i,"$1 --\x3e $2");return e.trim()?"".concat(e.trim(),"\n"):""},o=t=>t&&!t.startsWith("\uFEFF")?"\uFEFF".concat(t):t;class c{getLines(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8,e=[];
1return this.utterances.forEach(n=>{n.words.length>t?e.push(...function(t,e){let n=[];for(let r=0;r<t.length;r+=e)n.push(t.slice(r,r+e));return n}(n.words,t)):e.push(n.words)}),e}getHeaders(){let t=[];return t.push("Transcription provided by WhisperTranscribe.ai"),t}constructor(t){this.utterances=t}}let l=t=>!function(t){return t&&"function"==typeof t.getLines&&"function"==typeof t.getHeaders}(t)?new c(t):t,h=function(t){let e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"srt",i=l(t),s=[],o=i.getLines(n);if(0===o.length)return[];let c=o[0][0]&&"speaker"in o[0][0],h=1;return o.forEach(t=>{if(0===t.length)return;let n=t[0],i=t[t.length-1],o=r(n.start,"srt"===a?"HH:mm:ss,SSS":"HH:mm:ss.SSS"),l=r(i.end,"srt"===a?"HH:mm:ss,SSS":"HH:mm:ss.SSS"),m="".concat(o," --\x3e ").concat(l),g=t.map(t=>{var e;return null!=(e=t.punctuated_word)?e:t.word}).join(" "),p=g;c&&e!==n.speaker?("srt"===a?p="[Speaker ".concat(n.speaker,"]\n").concat(g):"vtt"===a&&(p="<v Speaker ".concat(n.speaker,">").concat(g,"</v>")),e=n.speaker):"vtt"===a&&c&&(p="<v Speaker ".concat(n.speaker,">").concat(g,"</v>")),s.push({index:h++,startTime:o,endTime:l,timeRange:m,text:p,rawStartTime:n.start,rawEndTime:i.end})}),s};class m{}m.toSRT=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=[];return h(t,e,"srt").forEach(t=>{n.push(t.index.toString()),n.push(t.timeRange),n.push(t.text),n.push("")}),s(n.join("\n"))},m.toVTT=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=["WEBVTT",""],r=l(t).getHeaders();return r.length>0&&(n.push("NOTE"),n.push(r.join("\n")),n.push("")),h(t,e,"vtt").forEach(t=>{n.push(t.index.toString()),n.push(t.timeRange),n.push(t.text),n.push("")}),n.join("\n")},m.toText=function(t){let e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=l(t).getLines(n||Number.MAX_SAFE_INTEGER);if(0===r.length)return"";let a=r[0][0]&&void 0!==r[0][0].speaker,i=[];return r.forEach(t=>{if(0===t.length)return;let n=t[0],r=t.map(t=>{var e;return null!=(e=t.punctuated_word)?e:t.word}).join(" ");a&&e!==n.speaker&&(i.push("\n[Speaker ".concat(n.speaker,"]")),e=n.speaker),i.push(r)}),i.join(" ")},m.toVTTCues=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return h(t,e,"vtt")},m.toSRTCues=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return h(t,e,"srt")},m.toStructuredCues=h,m.secondsToTimestamp=r;let g=m}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.