Skip to content

Instantly share code, notes, and snippets.

@KoviRobi
Last active December 6, 2019 23:40
Show Gist options
  • Save KoviRobi/5762d4d16129b196cb3aa997fdb420dc to your computer and use it in GitHub Desktop.
Save KoviRobi/5762d4d16129b196cb3aa997fdb420dc to your computer and use it in GitHub Desktop.
#!/usr/bin/env nix-shell
#! nix-shell -i python -p "(python3.withPackages (p: with p; [ pysrt ]))"
import pysrt
import re
regexp = re.compile(r'\bring\b', flags=re.I)
filename='LOTR1.srt'
subs = pysrt.open(filename)
start_times = [ sub.start for sub in subs if regexp.search(sub.text) ]
prev = pysrt.SubRipTime()
acc = pysrt.SubRipTime()
# More accurately, the current slowdown
speed = 1.0
print(str(len(start_times)) + " counts")
for time in start_times:
diff = time - prev
print("diff:\t" + str(diff))
acc += diff * speed
print("new:\t" + str(diff*speed))
print("acc:\t" + str(acc))
prev = time
speed *= 2.0
end = subs[-1].start
diff = end - prev
acc += diff * speed
print("total:\t" + str(acc))
# 104 counts
# diff: 00:01:49,140
# new: 00:01:49,140
# acc: 00:01:49,140
# diff: 00:00:06,900
# new: 00:00:13,800
# acc: 00:02:02,940
# diff: 00:00:06,900
# new: 00:00:27,600
# acc: 00:02:30,540
# diff: 00:00:09,400
# new: 00:01:15,200
# acc: 00:03:45,740
# diff: 00:00:06,300
# new: 00:01:40,800
# acc: 00:05:26,540
# diff: 00:00:55,800
# new: 00:29:45,600
# acc: 00:35:12,140
# diff: 00:01:22,000
# new: 01:27:28,000
# acc: 02:02:40,140
# diff: 00:00:12,400
# new: 00:26:27,200
# acc: 02:29:07,340
# diff: 00:00:55,800
# new: 03:58:04,800
# acc: 06:27:12,140
# diff: 00:00:17,400
# new: 02:28:28,800
# acc: 08:55:40,940
# diff: 00:00:25,200
# new: 07:10:04,800
# acc: 16:05:45,740
# diff: 00:00:22,000
# new: 12:30:56,000
# acc: 28:36:41,740
# diff: 00:00:12,100
# new: 13:46:01,600
# acc: 42:22:43,340
# diff: 00:00:16,000
# new: 36:24:32,000
# acc: 78:47:15,340
# diff: 00:00:53,000
# new: 241:12:32,000
# acc: 319:59:47,340
# diff: 00:18:16,300
# new: 9978:45:58,400
# acc: 10298:45:45,740
# diff: 00:00:35,000
# new: 637:09:20,000
# acc: 10935:55:05,740
# diff: 00:00:40,800
# new: 1485:28:57,600
# acc: 12421:24:03,340
# diff: 00:00:44,500
# new: 3240:23:28,000
# acc: 15661:47:31,340
# diff: 00:00:12,500
# new: 1820:26:40,000
# acc: 17482:14:11,340
# diff: 00:02:35,700
# new: 45350:54:43,200
# acc: 62833:08:54,540
# diff: 00:00:13,800
# new: 8039:04:57,600
# acc: 70872:13:52,140
# diff: 00:02:08,300
# new: 149480:20:03,200
# acc: 220352:33:55,340
# diff: 00:00:09,300
# new: 21670:34:14,400
# acc: 242023:08:09,740
# diff: 00:00:07,300
# new: 34020:27:56,800
# acc: 276043:36:06,540
# diff: 00:03:59,600
# new: 2233233:51:47,200
# acc: 2509277:27:53,740
# diff: 00:00:03,800
# new: 70837:08:03,200
# acc: 2580114:35:56,940
# diff: 00:00:02,500
# new: 93206:45:20,000
# acc: 2673321:21:16,940
# diff: 00:00:07,200
# new: 536870:54:43,200
# acc: 3210192:16:00,140
# diff: 00:00:17,600
# new: 2624702:14:11,200
# acc: 5834894:30:11,340
# diff: 00:00:13,400
# new: 3996705:40:41,600
# acc: 9831600:10:52,940
# diff: 00:00:21,700
# new: 12944554:12:41,600
# acc: 22776154:23:34,540
# diff: 00:00:15,200
# new: 18134306:21:39,200
# acc: 40910460:45:13,740
# diff: 00:00:11,400
# new: 27201459:32:28,800
# acc: 68111920:17:42,540
# diff: 00:00:08,300
# new: 39609142:50:27,200
# acc: 107721063:08:09,740
# diff: 00:00:23,600
# new: 225247173:44:44,800
# acc: 332968236:52:54,540
# diff: 00:00:36,500
# new: 696739139:07:44,000
# acc: 1029707376:00:38,540
# diff: 00:00:16,400
# new: 626110788:02:20,800
# acc: 1655818164:02:59,340
# diff: 00:00:44,400
# new: 3390160852:18:33,600
# acc: 5045979016:21:32,940
# diff: 00:01:15,200
# new: 11483788112:19:37,600
# acc: 16529767128:41:10,540
# diff: 00:00:45,500
# new: 13896605295:30:08,000
# acc: 30426372424:11:18,540
# diff: 00:03:51,900
# new: 141653748045:08:28,800
# acc: 172080120469:19:47,340
# diff: 00:01:54,400
# new: 139760144686:11:37,600
# acc: 311840265155:31:24,940
# diff: 00:16:03,700
# new: 2354665234861:37:29,600
# acc: 2666505500017:08:54,540
# diff: 00:02:38,200
# new: 773078842285:10:11,200
# acc: 3439584342302:19:05,740
# diff: 00:17:20,500
# new: 10169260877341:34:56,000
# acc: 13608845219643:54:01,740
# diff: 00:00:08,100
# new: 158329674399:44:38,400
# acc: 13767174894043:38:40,140
# diff: 00:03:39,000
# new: 8561530541615:47:12,000
# acc: 22328705435659:25:52,140
# diff: 00:00:20,700
# new: 1618481116086:16:19,200
# acc: 23947186551745:42:11,340
# diff: 00:00:18,400
# new: 2877299761931:09:00,800
# acc: 26824486313676:51:12,140
# diff: 00:00:42,000
# new: 13135498913163:56:48,000
# acc: 39959985226840:48:00,140
# diff: 00:00:17,700
# new: 11071349083952:28:09,600
# acc: 51031334310793:16:09,740
# diff: 00:00:58,000
# new: 72557993996524:39:28,000
# acc: 123589328307317:55:37,740
# diff: 00:00:15,700
# new: 39281396749842:39:34,400
# acc: 162870725057160:35:12,140
# diff: 00:00:17,100
# new: 85568392920039:25:26,400
# acc: 248439117977200:00:38,540
# diff: 00:00:28,000
# new: 280223976814164:11:44,000
# acc: 528663094791364:12:22,540
# diff: 00:01:32,500
# new: 1851479846807870:34:40,000
# acc: 2380142941599234:47:02,540
# diff: 00:03:35,500
# new: 8626895286207483:26:56,000
# acc: 11007038227806718:13:58,540
# diff: 00:00:29,000
# new: 2321855807888789:02:56,000
# acc: 13328894035695507:16:54,540
# diff: 00:00:32,800
# new: 5252197965431191:46:46,400
# acc: 18581092001126699:03:40,940
# diff: 00:00:03,700
# new: 1184947101957037:10:11,200
# acc: 19766039103083736:13:52,140
# diff: 00:00:03,900
# new: 2497996593314835:06:52,800
# acc: 22264035696398571:20:44,940
# diff: 00:00:31,600
# new: 40480355050640404:56:06,400
# acc: 62744390747038976:16:51,340
# diff: 00:00:07,900
# new: 20240177525320202:28:03,200
# acc: 82984568272359178:44:54,540
# diff: 00:00:22,800
# new: 116829379133493826:54:04,800
# acc: 199813947405853005:38:59,340
# diff: 00:01:02,100
# new: 636412670542979530:45:07,200
# acc: 836226617948832536:24:06,540
# diff: 00:00:22,300
# new: 457069325381914445:35:47,200
# acc: 1293295943330746981:59:53,740
# diff: 00:00:08,100
# new: 332041393326771929:05:16,800
# acc: 1625337336657518911:05:10,540
# diff: 00:00:16,300
# new: 1336364126228736405:57:32,800
# acc: 2961701462886255317:02:43,340
# diff: 00:00:43,300
# new: 7099946830147765199:45:29,600
# acc: 10061648293034020516:48:12,940
# diff: 00:00:12,300
# new: 4033688037451155286:41:55,200
# acc: 14095336330485175803:30:08,140
# diff: 00:00:21,000
# new: 13773568908369798539:56:48,000
# acc: 27868905238854974343:26:56,140
# diff: 00:00:02,300
# new: 3017067475166717775:25:00,800
# acc: 30885972714021692118:51:56,940
# diff: 00:00:02,500
# new: 6558842337318951685:41:20,000
# acc: 37444815051340643804:33:16,940
# diff: 00:00:02,100
# new: 11018855126695838831:57:26,400
# acc: 48463670178036482636:30:43,340
# diff: 00:00:02,000
# new: 20988295479420645394:12:16,000
# acc: 69451965657457128030:42:59,340
# diff: 00:00:02,000
# new: 41976590958841290788:24:32,000
# acc: 111428556616298418819:07:31,340
# diff: 00:00:02,200
# new: 92348500109450839734:29:58,400
# acc: 203777056725749258553:37:29,740
# diff: 00:00:17,200
# new: 1443994728984140403121:15:56,800
# acc: 1647771785709889661674:53:26,540
# diff: 00:01:44,550
# new: 17554610338987427807712:35:50,400
# acc: 19202382124697317469387:29:16,940
# diff: 00:02:07,040
# new: 42661648923289580654075:43:19,040
# acc: 61864031047986898123463:12:35,980
# diff: 00:00:59,400
# new: 39894552047282762765303:48:28,800
# acc: 101758583095269660888767:01:04,780
# diff: 00:00:28,100
# new: 37745350590190088676937:16:22,400
# acc: 139503933685459749565704:17:27,180
# diff: 00:04:44,600
# new: 764578418360718806936394:51:56,800
# acc: 904082352046178556502099:09:23,980
# diff: 00:03:33,400
# new: 1146598977358941626143546:28:54,400
# acc: 2050681329405120182645645:38:18,380
# diff: 00:00:39,400
# new: 423392687047256795408207:25:00,800
# acc: 2474074016452376978053853:03:19,180
# diff: 00:09:29,200
# new: 12233254693771500910982317:51:08,800
# acc: 14707328710223877889036170:54:27,980
# diff: 00:00:09,300
# new: 399751471019237380436175:31:50,400
# acc: 15107080181243115269472346:26:18,380
# diff: 00:00:10,900
# new: 937051835292405902527809:18:30,400
# acc: 16044132016535521172000155:44:48,780
# diff: 00:01:00,000
# new: 10316166994044835624159368:32:00,000
# acc: 26360299010580356796159524:16:48,780
# diff: 00:00:24,200
# new: 8321708041862834070155223:57:00,800
# acc: 34682007052443190866314748:13:49,580
# diff: 00:21:20,500
# new: 880656789058294134449071427:07:44,000
# acc: 915338796110737325315386175:21:33,580
# diff: 00:13:01,600
# new: 1075082149672725803179061659:25:13,600
# acc: 1990420945783463128494447834:46:47,180
# diff: 00:00:15,500
# new: 42640156908718653913192056:36:16,000
# acc: 2033061102692181782407639891:23:03,180
# diff: 00:01:13,100
# new: 402192963874494658200559914:33:10,400
# acc: 2435254066566676440608199805:56:13,580
# diff: 00:00:10,000
# new: 110039114603144913324366597:41:20,000
# acc: 2545293181169821353932566403:37:33,580
# diff: 00:11:06,400
# new: 14666013194307154047871580139:58:30,400
# acc: 17211306375476975401804146543:36:03,980
# diff: 00:04:21,200
# new: 11496886693736580544129822126:32:06,400
# acc: 28708193069213555945933968670:08:10,380
# diff: 00:00:12,200
# new: 1073981758526694354045817993:26:36,800
# acc: 29782174827740250299979786663:34:47,180
# diff: 00:00:33,500
# new: 5898096542728567354186049636:07:28,000
# acc: 35680271370468817654165836299:42:15,180
# diff: 00:01:28,900
# new: 31303927322302664942515809710:32:06,400
# acc: 66984198692771482596681646010:14:21,580
# diff: 00:08:59,800
# new: 380154330001776794959955772367:45:29,600
# acc: 447138528694548277556637418377:59:51,180
# diff: 00:00:03,800
# new: 5352302534296968584097191311:35:15,200
# acc: 452490831228845246140734609689:35:06,380
# diff: 00:02:58,800
# new: 503679838490683148861356740269:23:50,400
# acc: 956170669719528395002091349958:58:56,780
# total: 2678485285229616075168945438329:50:27,980
# That's 2678485285229616075168945438329 hours
# or 1.11603553551234e+29 days
# or 3.0555387693698562e+26 years (using 365.25 days per year)
# The universe is approx 13 billion (10^9 or 1e9) years
# So about 2.3504144379768124e+16 (2.4 * 10^16) times the age of the universe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment