0.022
@ kaotonik.nethomesthksubs.py
thk thk Tue. 13 May. 2008 15:20 tags programming , python 1 views
Of course there are numerous programs that adjust time on subtitle files, but here is a simple python script I have written one night I wasn't smart enough to search well. It adjusts time on srt files.

 Oh, and if you are on Windows try JetAudio media player which is very good in this task ( to sync unsychronized subtitles files with movies).
On Linux Kaffeine will do the job.
Save it as whatever_you_like.py and run it as
python program_name.py movie.srt 20   
(will move subtitles 20 seconds forward)
or
python program_name.py movie.srt -30   
(will move subtitles 30 seconds backward)

#!/usr/bin/env python
# By Thimios Katsoulis sometime in 2007 I think..
# Feel free to copy , modify , distribute

def toSeconds(s):
    secs=0
    secs +=int(s[6:])
    secs += int(s[3:5])*60
    secs += int(s[0:2])*60*60
    return secs
   
def toString(sec):
   
   
    h,sec = divmod(sec,3600)   
    m,s=divmod(sec,60)
    tim='%(h)02d:%(m)02d:%(s)02d' % {'h':h,'m':m,'s':s}
    return tim
   
   

if __name__ == '__main__':
    import sys

    subs=open(sys.argv[1])
    step=int(sys.argv[2])
    subOut=open(sys.argv[1] + str(step) + '.srt','wt')
   
    for l in subs.readlines():
        line=l
        if len(l) > 2:
            if l[2]==':' :
                line=''
                time1=l[:8]
                time2=l[17:25]
               
                secs1=toSeconds(time1)
                secs1 += step
                secs2=toSeconds(time2)
                secs2 += step
                tim1=toString(secs1)
                tim2=toString(secs2)
               
                line=tim1
                line += l[8:17]
                line +=tim2
                line += l[25:]
              
        subOut.write(line)       
       


   
   

As you see there is not a single check for argument count , their type e.t.c.
But I think it's amazing how small it is.
Python...