Overview

This is a memorandum on how to create TEI/XML files from VTT files.

Additionally, I will make it possible to access VTT files and TEI/XML files from an IIIF manifest. As a result, as shown below, the TEI/XML file is associated via SeeAlso, and the contents of the VTT file can be accessed from the “Annotations” tab.

https://clover-iiif-demo.vercel.app/?manifest=https://movie-tei-demo.vercel.app/data/sdcommons_npl-02FT0102974177/sdcommons_npl-02FT0102974177_vtt.json

References

I referenced the following efforts from “The Ethiopian Language Archive.” The TEI/XML structuring method was particularly helpful.

https://dev.jael.info/documentation/

Example

The target is a VTT file created in the following article.

Specifically, the following resource is used: “Prefectural News Volume 1” (Nagano Prefectural Library).

https://www.ro-da.jp/shinshu-dcommons/library/02FT0102974177

Creating TEI/XML

An example of the created TEI/XML file is below.

https://movie-tei-demo.vercel.app/data/sdcommons_npl-02FT0102974177/sdcommons_npl-02FT0102974177.xml

Specifically:

<<<??t/xxe<<tmmit/T/ellCe<tE<<Ti--oif/eIt/t/ECmmrHi<<<<fi>e<<te<tIooopelt/p/n/s/iHif/r/exbe>rddsuaei<tu<<po<no<sleHi<<<<fe<rito<<<<<<<<<<bxpeecsdDttibda/utnoub/oeaelt/p/n/s/ivceH>dt/a/a/a/a/a/a/a/a/aotullheelitliv<abeotri<<buDdaei<tu<po<no<slihveyi<<<<<<<<<<tn<an<an<an<an<an<an<an<an<ad>sexrsetlisalvlstecbm/rireedDttibputnoupoesaia>mwwwwwwwwwwinunnunnunnunnunnunnunnunnuny>hhmm>cSlectiiaiSeselo<<<mebcsreelitlbeotruDinsdehhhhhhhhhhmononononononononon>rral>teSarlcict>SDSnta/i/oflec>rsetlilstecreogieleeeeeeeeeeetsotsotsotsotsotsotsotsotsoeetnm>ttiaelamtetoiv<am<inSD>>cSleciSesecsneorinnnnnnnnnnlattattattattattattattattattffystmibbnattmsrgtalvppmotte>teSactSDecDn>nitaataataataataataataataataa==p=>touicbi>tcurliiarupgarsm>ttamteD>ewDeaaaaaaaaaanirtirtirtirtirtirtirtirtirt""e">ntleio>>c>elciibrrructmittmseshebbbbbbbbbbeotiotiotiotiotiotiotiotiotihhnhSoilnt>aelnli>gc>>toi>tcscesussssssssss>n=on=on=on=on=on=on=on=on=ottsttrttiS>bnatinet>no>>c>ncnooooooooooB"nB"nB"nB"nB"nB"nB"nB"nB"ntt=tm>yatticb>stt>Sn>=>illlllllllll#Bl#Bl#Bl#Bl#Bl#Bl#Bl#Bl#Bpp"p t>rymleih>=tS"tuuuuuuuuuuotlotlotlotlotlotlotlotlotl::h:>g>tile"mt2=ttttttttttc1oc2oc3oc4oc5oc6oc7oc8oc9o/t/1e>ttirh tm0"eeeeeeeeeek"ck"ck"ck"ck"ck"ck"ck"ck"c/t/<tyat>t>t2m==========kkkkkkkkkwwpw</= >ryt1>5s""""""""""xe>xe>xe>xe>xe>xe>xe>xe>xe>ww:w/d"g>p-"0000000000mnmnmnmnmnmnmnmnmnwwwtih1es<0>0000000000ldldldldldldldldld../.istt:/2:::::::::::=:=:=:=:=:=:=:=:=ttptttt<=/t-0000000000i"i"i"i"i"i"i"i"i"eeuelrp/"/i10000011111d#d#d#d#d#d#d#d#d#iiriei:thwt8::::::::::=t=t=t=t=t=t=t=t=t--l->b/itwl"0235500123"2"3"4"5"6"7"8"9"1cc.cu/ttwe>0580538833a"a"a"a"a"a"a"a"a0..o.tclp.>..........b>b>b>b>b>b>b>b>b"oocooresr0555555555123456789>rrlrre>:o0000000000"""""""""ggcg>a/-0000000000>>>><>>>>>//.t/d""""""""""</<rrnica//u/eersvr.cxxxxxxxxxxu>u8llgeejhmmmmmmmmmm>>ee1capallllllllllaad.ot/n::::::::::sss0misgiiiiiiiiiieed"mvhedddddddddd//l>oei>==========2xx/nc<n""""""""""mmsso/sttttttttttllc.mph1234567891//homuu"""""""""06tterob-"1eemgnldiia/sic//tl.soccriohmuuocremssnegrott"n/>noo?sps48<mm>eu/8///sbluss/li>ccbibhhycr<ee/da</mm4or/uaa.myu>//0a/>rr/i0<ee"n2/ll>/FuaahzT>xxte0nntr1ggpo0//:/2tt/19ee/.71iic041__r/16aae"7lla>7lltc"..ic>rrv0nne<ggc/""olmittmcyyoeppnneesc==.e""o>aarppg<pp//llluiii<>ccc/aaeuttn>iisooenns///<xxb/mmyrll/e""4f.>s0c/h<e/mlaitcyepnecnes>="http://relaxng.org/n<s//nsottreu>cture/1.0"?>

Creating the IIIF Manifest File

I created an IIIF manifest file that has the above TEI/XML file in seeAlso.

https://movie-tei-demo.vercel.app/data/sdcommons_npl-02FT0102974177/sdcommons_npl-02FT0102974177_vtt.json

Specifically:

{}""""}"]"}"}""]"]"]"]@itl,m,s,r,rp,s,h,icdya"]e{}u"]e"}"}ir{}e{}o{}t{}o"pbjtmjql,vgoemen:eea"a"}"}ma"ua"]a"]hv"""}A"""}"e"""}"m""""""]"]t"l"dl,va"ibjljtiitllitl,fpitl,fsithwdi,ae":":aa"]a"]r:rea"ua"sddya"]sdya"]oadya"]o"dyeiut{}n{}xh:tbjljyel"Ae""e"pbjo"pbjrg"pbjr:"pidrentt"[aea"ua""[d":t"::r:eea"":eea"me:eea"m:egtam"""]o"""]"tM{"l"de":S:t:""l":"l"Ta""l"a["hhtsitititi:pa:":i":t[r[":":":":":Et:":":t":t"i"dyt{}adyt{}sn :s:{a{i{hh:[h:I"h:"h":o:"pet"pe":i[[t["tbt[t"[t"[/:[t"[:t":n:em""""}"i:em"""}""}"h/f1{r{euttA{tD{XtT{tC6"["sitmb,to"sitl,mb,tt/eimt ppgpaM"pe"pa44:":"dyoo""""""an":"dya"]oo""""}atms"beis:estLasxtsn80h:"ptdithwdfrsh:"pbjtditflrpotuno1:/n:a"p:te:0,6t":eiydyeiuog"t":eea"iydyoa"]g:"ttn//t/sp/"x/a,1tA["v""pidrre:tA["l"v""prbje/i,o""/e"/el/,t/s9pn":a::egtamtpn":":a::emea"t/er:cx,mtiw/m".snht"hhta"[snh:t"al""i-"rao"cwho,6:t"i{":t"it::t"[i{":t"::it{emv,awtv4ttAoh":o"ttA{(oh":ieapit.mi8/apnnt":n:"/apnmnt":["fitleirle0mtsn"tV6"hmtsna"tT{(h.-ie-oo"-0oi::pi44:"toi:c:pe"mtidv.tn-t5votsd80vtvothsxtatoeeoe/de,in/a":e0,6ipin/ai":tecp/mcrixaiePmtp/,1dsePmtns/"xhsaoog-m.--aoia"9e:-aoieu/,ti:p.m/dljdtgvoim,.o/tgvo-pm/n/imie"peeeinno6//eeingpove//eoi"m/"mi"e"tv4mmi"e"elvt-mprnioso-,-,ii8po-,-,neitgorcsf.h.dtne04vdteme"evee./viveeg-0"ieere-,nislo4enemi"t5emianteee.r"rsro-,e,-o-tter-nag,chc.dit.deiiattp/eueve-evedn-teappl-lemdiem)gdeit/u.d.roe-ro""ed-idbacac.mdc.,m)doalpopevoeevo"entipmple.mle.m/ac/m/.rvo.rvo3ddodace.ace.s"oanapervpervcdmtstplceplceocaa/a/.er/.ernoi/l/dalcdalctmnsisap.eap.eem/dbdtpaltpalxozcrca/p.a/p.tneoao/dpa/dpa.srmrmsa/psa/pj_omymdtdpdtdpsn/o/ocaa/caa/op1n0no/tdo/tdnl.s2smsaamsaa"-0_F_md/tmd/t,0/nTnocsaocsa2"p0pnod/nod/F,l1lsmcssmcsT-0-_mod_mod0020nomcnomc1292pnmopnmo0F7Flsomlsom2T4T-_nm-_nm90100nso0nso71712p_n2p_n4070FlnsFlns12"2T-p_T-p_79,900ln00ln77712-p12-p/440F0l0F0ls112T2-2T2-d7790F090F0c7771T271T2o//400F400Fmss121T121Tmdd79007900occ77217721noo/490/490smms172s172_mmd749d749nooc717c717pnno/74o/74lssms71ms71-__md/7md/70nnocs7ocs72ppnod/nod/FllsmcssmcsT--_mod_mod000nomcnomc122pnmopnmo0FFlsomlsom2TT-_nm-_nm9000nso0nso7112p_n2p_n400FlnsFlns122T-p_T-p_79900ln00ln77712-p12-p_440F0l0F0lv112T2-2T2-t7790F090F0t7771T271T2../400F400Fjxc121T121Tsma79007900oln77217721n"v/490/490",ac172c172,sa749a749"n717n717,v/74v/74ac71ac71sa.7sa.7/nm7"nv7pvp/,vt/aa4catcgs"as"ae/,n/,n"pvav,aanagsnse"o"/taantniootna/twieob"nv"t,t",

Using iiif-prezi3

I used iiif-prezi3 to create the above IIIF manifest file.

https://github.com/iiif-prezi/iiif-prezi3

Usage can be found in the following documentation:

https://iiif-prezi.github.io/iiif-prezi3/code/

Below are some examples:

class"I"dddddd"I"eeeeeeC"I"ffffffuIFsI"A"msa"A"ssa"A"rsa"A"psa"A"hss"A"wtIM_"r"aed"r"eed"r"eed"r"red"r"oea"r"ioFai"g"nld"g"eld"g"qld"g"old"g"mlv"g"tmnnsif_sAf_suf_svf_sefeshMMii:mf.s:utlflitlf.r:lvilv.p:litl.h:ilpitlf.(:ojaaftaemeryaosdyaomeaaraamradyamodaadyaomsuosnne_nsaelpbro=pbraqbleblaobepbambg=pbraetpoiis_itnAeemueemnueudeunvereene(eeieemnlpenfft(f_il(la=r=laiileSleiil=lipsld=laifun.eesejfss(tlt=tfrt==fd="=fat=,"=tf,t(dssesseots(E,yl=ee((alvee(Alegr(Tl=eJ_outtltos(rts(xpafsdsstaasrsEgase)sEea"soSpum:f_nts)rtstebotStteblt(txebt(:txxbttuOatpv,pe:)rte,er.trrmeu.srtne.srttee.tNtp(3a==l:)rrlmsa))elere)etlpe)e"lxhphusmtf:)n,aet::n,el:r"rl:r,,touteahjM,:ateetqfn,ofn/mt(_lnsalAmu,av,ahe_spfi(onuIle=ililtppta.fsnirtsnrlIdiImaartmet.fleotKeatedtlgt)hasrle:m(edber:Ue"eh:,nt)osU(=sySemRm:i_:atsRMeVtl(=sL(='fpd(tLIslaa:tswea(*rMefltprht'sto*,Ee,uesr,or)thpmAemtom).:eatllServleajnnysatn)iapsss(ipobrtdbaotJmfeeieegfnrSae:ln=rleN:()Ons:g:o):Nits(rNn,f_tseoseejrtqnt:fss,ruer,to,i:)_nlrip)avenabaddtelSehlutNn):eaot):tn=see2tsm:,rte,rne)tnfsourrmeaN_toa:nsecs:itir=)FalseN)one:

Summary

While there are still incomplete aspects, I hope this serves as a useful reference for creating TEI/XML and IIIF manifest files for video materials.