Last active 1629393043

Code to make your own Black Mirror: Bandersnatch

bandersnatch.md Raw

Bandersnatch Maker

This is a program I wrote on a live stream on the 14th (and 15th) of June 2019. https://www.twitch.tv/videos/438871676

You'll need some things.

You'll need to edit the two js files to remove bandersnatch= and SegmentMap= respectively so they parse as valid json. If you encounter an error about utf-8 bom use dos2unix to fix it. Rename the files to bandersnatch.json and SegmentMap.json.

Open a python interpreter in the same directory as SegmentMap.js. I'd probably recommend 3.7. Paste this in:

import json

with open("SegmentMap.json") as f:
  smap = json.load(f)

def msToTS(ms):
  s,ms = divmod(ms,1000)
  m,s = divmod(s,60)
  h,m = divmod(m,60)
  return "{:02d}:{:02d}:{:02d}.{:03d}".format(h,m,s,ms)

for segment in smap.values():
  ss = ""
  t = ""
  # working around ffmpeg seek to previous keyframe
  if segment["startTimeMs"] > 5000:
    # 40ms subtracted to account for one frame difference in 25fps source video
    ss = " -ss " + msToTS(segment["startTimeMs"]-4960)
  if "endTimeMs" in segment:
    t = " -t {}".format((segment["endTimeMs"]-segment["startTimeMs"])/1000)
  print("""ffmpeg{} -i bandersnatch.mkv -ss 5{} {}.mkv 2>/dev/null""".format(ss, t, segment))

You'll get a bunch of lines to run to generate clips from the full movie. I'd suggest putting these lines into a bash script and leaving it to run for a while in screen or tmux. This will take a very long time dependent on your CPU.

While that's going, generate some movies!

$ python bandersnatch.py > concat.txt
picked 1A
out=['1E']
out=['1D']
poss=['1E', '1D']
picked 1D
out=['1H']
out=['1G']
poss=['1H', '1G']
picked 1G
...
out=['8JA']
out=['8JB1']
poss=['8JA', '8JB1']
picked 8JA
out=['0Cr4', '0cr3']
out=['0Cr4', '0cr3']
poss=['0Cr4', '0cr3']
picked 0Cr4 and added IDNT
01:04:02.610

The stderr output displays what choices were possible at each stage, which segment it picked, and the total length of the movie.

The output file concat.txt is produced in ffmpeg concat format, render it in the same directory as the segment files (e.g IDNT.mkv) with:

ffmpeg -f concat -i concat.txt -c copy `date +%Y%m%d-%H%M%S.mkv`
bandersnatch.py Raw
1#!/usr/bin/env python3
2from __future__ import print_function
3from random import choice
4import json
5from sys import stderr
6
7with open("bandersnatch.json") as f:
8 bandersnatch = json.load(f)
9
10with open("SegmentMap.json") as f:
11 smap = json.load(f)
12
13initial_state = { "p_sp": True, "p_tt": True, "p_8a": False, "p_td": True, "p_cs": False, "p_w1": False, "p_2b": False, "p_3j": False, "p_pt": False, "p_cd": False, "p_cj": False, "p_sj": False, "p_sj2": False, "p_tud": False, "p_lsd": False, "p_vh": False, "p_3l": False, "p_3s": False, "p_3z": False, "p_ps": "n", "p_wb": False, "p_kd": False, "p_bo": False, "p_5v": False, "p_pc": "n", "p_sc": False, "p_ty": False, "p_cm": False, "p_pr": False, "p_3ad": False, "p_s3af": False, "p_nf": False, "p_np": False, "p_ne": False, "p_pp": False, "p_tp": False, "p_bup": False, "p_be": False, "p_pe": False, "p_pae": False, "p_te": False, "p_snt": False, "p_8j": False, "p_8d": False, "p_8m": False, "p_8q": False, "p_8s": False, "p_8v": False, "p_vs": "n", "p_scs": False, "p_3ab": False, "p_3ac": False, "p_3aj": False, "p_3ah": False, "p_3ak": False, "p_3al": False, "p_3af": False, "p_5h": False, "p_5ac": False, "p_5ag": False, "p_5ad": False, "p_6c": False, "length": 0 }
14state = dict(initial_state)
15
16moments = bandersnatch["videos"]["80988062"]["interactiveVideoMoments"]["value"]["momentsBySegment"]
17preconditions = bandersnatch["videos"]["80988062"]["interactiveVideoMoments"]["value"]["preconditions"]
18segmentGroups = bandersnatch["videos"]["80988062"]["interactiveVideoMoments"]["value"]["segmentGroups"]
19
20def msToTS(ms):
21 s,ms = divmod(ms,1000)
22 m,s = divmod(s,60)
23 h,m = divmod(m,60)
24 return "{:02d}:{:02d}:{:02d}.{:03d}".format(h,m,s,ms)
25
26def conditionHandler(cond):
27 global state
28 if not cond:
29 return True
30 if cond[0] == "persistentState":
31 return state[cond[1]]
32 if cond[0] == "not":
33 return not all(conditionHandler(c) for c in cond[1:])
34 if cond[0] == "and":
35 return all(conditionHandler(c) for c in cond[1:])
36 if cond[0] == "eql":
37 return conditionHandler(cond[1]) == cond[2]
38 if cond[0] == "or":
39 return any(conditionHandler(c) for c in cond[1:])
40
41def groupHandler(group, segment=None):
42 out = []
43 if segment:
44 group.append(segment)
45 for item in group:
46 if type(item) is str and conditionHandler( preconditions.get(item,[]) ):
47 out.append(item)
48 if type(item) is dict:
49 if "segmentGroup" in item:
50 out += groupHandler(segmentGroups[item["segmentGroup"]])
51 if "precondition" in item:
52 if conditionHandler( preconditions.get(item["precondition"],[]) ):
53 out.append(item["segment"])
54 print("out="+repr(out),file=stderr)
55 return out
56
57
58def followTheStory(segment):
59 global state
60 global history
61 possibilities = []
62 if segment in moments:
63 m = moments[segment]
64 for moment in m:
65 if moment["type"] == "notification:playbackImpression":
66 state.update( moment.get("impressionData",{}).get("data", {}).get("persistent", {}) )
67 if moment["type"] == "scene:cs_bs":
68 for option in moment["choices"]:
69 state.update( option.get("impressionData",{}).get("data", {}).get("persistent", {}) )
70 if "segmentId" in option:
71 p = groupHandler([option["segmentId"]])
72 elif "sg" in option:
73 p = groupHandler(segmentGroups[option["sg"]])
74 elif moment["trackingInfo"]["optionType"] == "fakeOption":
75 continue
76 else:
77 raise Exception(option["id"])
78 possibilities += p
79 if moment["type"] == "notification:action":
80 possibilities.append(segment)
81 if segment in segmentGroups:
82 possibilities += groupHandler(segmentGroups[segment])
83 print("poss="+repr(possibilities),file=stderr)
84 if not possibilities:
85# raise Exception("hoi")
86 possibilities += groupHandler(segmentGroups["respawnOptions"])
87 return choice(possibilities)
88
89def bandersnatch():
90 global state
91 state = dict(initial_state)
92 current_segment = "1A"
93 while True:
94 state["length"] += smap[current_segment]["endTimeMs"] - smap[current_segment]["startTimeMs"]
95 if current_segment[:3].lower() == "0cr":
96 print("file '{}.mkv'".format(current_segment))
97 print("file 'IDNT.mkv'")
98 print("picked {} and added IDNT".format(current_segment), file=stderr)
99 state["length"] += 10
100 break
101 print("file '{}.mkv'".format(current_segment))
102 print("picked {}".format(current_segment), file=stderr)
103 current_segment = followTheStory(current_segment)
104 if current_segment is None:
105 break
106 return msToTS(state["length"])
107
108if __name__ == "__main__":
109 print(bandersnatch(),file=stderr)
110
timestamps.sh Raw
1ffmpeg -i bandersnatch.mkv -ss 5 -t 153.52 1A.mkv 2>/dev/null
2ffmpeg -ss 00:02:28.560 -i bandersnatch.mkv -ss 5 -t 53.72 1E.mkv 2>/dev/null
3ffmpeg -ss 00:03:22.280 -i bandersnatch.mkv -ss 5 -t 274.12 1H.mkv 2>/dev/null
4ffmpeg -ss 00:07:56.400 -i bandersnatch.mkv -ss 5 -t 89.96 8A.mkv 2>/dev/null
5ffmpeg -ss 00:09:26.360 -i bandersnatch.mkv -ss 5 -t 139.92 1HA.mkv 2>/dev/null
6ffmpeg -ss 00:11:46.280 -i bandersnatch.mkv -ss 5 -t 317.36 1Qtt.mkv 2>/dev/null
7ffmpeg -ss 00:17:03.640 -i bandersnatch.mkv -ss 5 -t 196.6 2B.mkv 2>/dev/null
8ffmpeg -ss 00:20:20.240 -i bandersnatch.mkv -ss 5 -t 189.84 1R.mkv 2>/dev/null
9ffmpeg -ss 00:23:30.080 -i bandersnatch.mkv -ss 5 -t 10.28 3B.mkv 2>/dev/null
10ffmpeg -ss 00:23:40.360 -i bandersnatch.mkv -ss 5 -t 31.64 SS13.mkv 2>/dev/null
11ffmpeg -ss 00:24:12.000 -i bandersnatch.mkv -ss 5 -t 30.0 3Ax.mkv 2>/dev/null
12ffmpeg -ss 00:24:42.000 -i bandersnatch.mkv -ss 5 -t 22.12 3C.mkv 2>/dev/null
13ffmpeg -ss 00:25:04.120 -i bandersnatch.mkv -ss 5 -t 68.04 3J.mkv 2>/dev/null
14ffmpeg -ss 00:26:12.160 -i bandersnatch.mkv -ss 5 -t 68.68 3R.mkv 2>/dev/null
15ffmpeg -ss 00:27:20.840 -i bandersnatch.mkv -ss 5 -t 52.36 3U.mkv 2>/dev/null
16ffmpeg -ss 00:28:13.200 -i bandersnatch.mkv -ss 5 -t 40.72 3X.mkv 2>/dev/null
17ffmpeg -ss 00:28:53.920 -i bandersnatch.mkv -ss 5 -t 64.12 8B.mkv 2>/dev/null
18ffmpeg -ss 00:29:58.040 -i bandersnatch.mkv -ss 5 -t 31.64 SS15.mkv 2>/dev/null
19ffmpeg -ss 00:30:29.680 -i bandersnatch.mkv -ss 5 -t 30.0 3Xxa.mkv 2>/dev/null
20ffmpeg -ss 00:30:59.680 -i bandersnatch.mkv -ss 5 -t 244.96 3Vfs.mkv 2>/dev/null
21ffmpeg -ss 00:35:04.640 -i bandersnatch.mkv -ss 5 -t 19.52 3Y.mkv 2>/dev/null
22ffmpeg -ss 00:35:24.160 -i bandersnatch.mkv -ss 5 -t 31.64 SS17.mkv 2>/dev/null
23ffmpeg -ss 00:35:55.800 -i bandersnatch.mkv -ss 5 -t 32.96 3Vx.mkv 2>/dev/null
24ffmpeg -ss 00:36:28.760 -i bandersnatch.mkv -ss 5 -t 54.24 3Z.mkv 2>/dev/null
25ffmpeg -ss 00:37:23.000 -i bandersnatch.mkv -ss 5 -t 153.44 3AH.mkv 2>/dev/null
26ffmpeg -ss 00:39:56.440 -i bandersnatch.mkv -ss 5 -t 43.2 4C2.mkv 2>/dev/null
27ffmpeg -ss 00:40:39.640 -i bandersnatch.mkv -ss 5 -t 30.2 7A.mkv 2>/dev/null
28ffmpeg -ss 00:41:09.840 -i bandersnatch.mkv -ss 5 -t 24.64 7B.mkv 2>/dev/null
29ffmpeg -ss 00:41:34.480 -i bandersnatch.mkv -ss 5 -t 14.08 7C.mkv 2>/dev/null
30ffmpeg -ss 00:41:48.560 -i bandersnatch.mkv -ss 5 -t 145.76 7D.mkv 2>/dev/null
31ffmpeg -ss 00:44:14.320 -i bandersnatch.mkv -ss 5 -t 59.76 7L.mkv 2>/dev/null
32ffmpeg -ss 00:45:14.080 -i bandersnatch.mkv -ss 5 -t 31.6 SS51.mkv 2>/dev/null
33ffmpeg -ss 00:45:45.680 -i bandersnatch.mkv -ss 5 -t 26.16 R4.mkv 2>/dev/null
34ffmpeg -ss 00:46:11.840 -i bandersnatch.mkv -ss 5 -t 207.04 3M.mkv 2>/dev/null
35ffmpeg -ss 00:49:38.880 -i bandersnatch.mkv -ss 5 -t 269.68 3N.mkv 2>/dev/null
36ffmpeg -ss 00:54:08.560 -i bandersnatch.mkv -ss 5 -t 74.28 8L.mkv 2>/dev/null
37ffmpeg -ss 00:55:22.840 -i bandersnatch.mkv -ss 5 -t 31.64 SS20.mkv 2>/dev/null
38ffmpeg -ss 00:55:54.480 -i bandersnatch.mkv -ss 5 -t 31.24 3Nx.mkv 2>/dev/null
39ffmpeg -ss 00:56:25.720 -i bandersnatch.mkv -ss 5 -t 58.52 3Q.mkv 2>/dev/null
40ffmpeg -ss 00:57:24.240 -i bandersnatch.mkv -ss 5 -t 19.16 3S.mkv 2>/dev/null
41ffmpeg -ss 00:57:43.400 -i bandersnatch.mkv -ss 5 -t 83.0 ZHw6.mkv 2>/dev/null
42ffmpeg -ss 00:59:06.400 -i bandersnatch.mkv -ss 5 -t 81.52 3AC2.mkv 2>/dev/null
43ffmpeg -ss 01:00:27.920 -i bandersnatch.mkv -ss 5 -t 51.84 5A.mkv 2>/dev/null
44ffmpeg -ss 01:01:19.760 -i bandersnatch.mkv -ss 5 -t 17.36 5H.mkv 2>/dev/null
45ffmpeg -ss 01:01:37.120 -i bandersnatch.mkv -ss 5 -t 45.56 5V.mkv 2>/dev/null
46ffmpeg -ss 01:02:22.680 -i bandersnatch.mkv -ss 5 -t 47.76 5QA.mkv 2>/dev/null
47ffmpeg -ss 01:03:10.440 -i bandersnatch.mkv -ss 5 -t 35.88 5UA.mkv 2>/dev/null
48ffmpeg -ss 01:03:46.320 -i bandersnatch.mkv -ss 5 -t 72.64 5AD.mkv 2>/dev/null
49ffmpeg -ss 01:04:58.960 -i bandersnatch.mkv -ss 5 -t 78.52 5AF.mkv 2>/dev/null
50ffmpeg -ss 01:06:17.480 -i bandersnatch.mkv -ss 5 -t 102.4 8Q.mkv 2>/dev/null
51ffmpeg -ss 01:07:59.880 -i bandersnatch.mkv -ss 5 -t 31.6 SS52.mkv 2>/dev/null
52ffmpeg -ss 01:08:31.480 -i bandersnatch.mkv -ss 5 -t 38.92 Z7c.mkv 2>/dev/null
53ffmpeg -ss 01:09:10.400 -i bandersnatch.mkv -ss 5 -t 26.72 5VA.mkv 2>/dev/null
54ffmpeg -ss 01:09:37.120 -i bandersnatch.mkv -ss 5 -t 157.8 5Mp.mkv 2>/dev/null
55ffmpeg -ss 01:12:14.920 -i bandersnatch.mkv -ss 5 -t 125.84 8K.mkv 2>/dev/null
56ffmpeg -ss 01:14:20.760 -i bandersnatch.mkv -ss 5 -t 60.24 S37A.mkv 2>/dev/null
57ffmpeg -ss 01:15:21.000 -i bandersnatch.mkv -ss 5 -t 33.68 R2.mkv 2>/dev/null
58ffmpeg -ss 01:15:54.680 -i bandersnatch.mkv -ss 5 -t 118.48 3AD3.mkv 2>/dev/null
59ffmpeg -ss 01:17:53.160 -i bandersnatch.mkv -ss 5 -t 113.0 8J.mkv 2>/dev/null
60ffmpeg -ss 01:19:46.160 -i bandersnatch.mkv -ss 5 -t 78.4 8JA.mkv 2>/dev/null
61ffmpeg -ss 01:21:04.560 -i bandersnatch.mkv -ss 5 -t 31.6 SS57.mkv 2>/dev/null
62ffmpeg -ss 01:21:36.160 -i bandersnatch.mkv -ss 5 -t 48.36 R6.mkv 2>/dev/null
63ffmpeg -ss 01:22:24.520 -i bandersnatch.mkv -ss 5 -t 229.88 3AF1.mkv 2>/dev/null
64ffmpeg -ss 01:26:14.400 -i bandersnatch.mkv -ss 5 -t 129.84 6A.mkv 2>/dev/null
65ffmpeg -ss 01:28:24.240 -i bandersnatch.mkv -ss 5 -t 87.96 6C.mkv 2>/dev/null
66ffmpeg -ss 01:29:52.200 -i bandersnatch.mkv -ss 5 -t 45.32 8D.mkv 2>/dev/null
67ffmpeg -ss 01:30:37.520 -i bandersnatch.mkv -ss 5 -t 54.4 1D.mkv 2>/dev/null
68ffmpeg -ss 01:31:31.920 -i bandersnatch.mkv -ss 5 -t 276.12 1G.mkv 2>/dev/null
69ffmpeg -ss 01:36:08.040 -i bandersnatch.mkv -ss 5 -t 140.6 1GA.mkv 2>/dev/null
70ffmpeg -ss 01:38:28.640 -i bandersnatch.mkv -ss 5 -t 317.36 1Qnw.mkv 2>/dev/null
71ffmpeg -ss 01:43:46.000 -i bandersnatch.mkv -ss 5 -t 40.72 3Xcd.mkv 2>/dev/null
72ffmpeg -ss 01:44:26.720 -i bandersnatch.mkv -ss 5 -t 272.72 3Wff.mkv 2>/dev/null
73ffmpeg -ss 01:48:59.440 -i bandersnatch.mkv -ss 5 -t 154.68 3AB.mkv 2>/dev/null
74ffmpeg -ss 01:51:34.120 -i bandersnatch.mkv -ss 5 -t 32.92 7H.mkv 2>/dev/null
75ffmpeg -ss 01:52:07.040 -i bandersnatch.mkv -ss 5 -t 15.4 7K.mkv 2>/dev/null
76ffmpeg -ss 01:52:22.440 -i bandersnatch.mkv -ss 5 -t 31.6 SS56.mkv 2>/dev/null
77ffmpeg -ss 01:52:54.040 -i bandersnatch.mkv -ss 5 -t 20.68 8Aa.mkv 2>/dev/null
78ffmpeg -ss 01:53:14.720 -i bandersnatch.mkv -ss 5 -t 31.6 SS10.mkv 2>/dev/null
79ffmpeg -ss 01:53:46.320 -i bandersnatch.mkv -ss 5 -t 38.12 1PA.mkv 2>/dev/null
80ffmpeg -ss 01:54:24.440 -i bandersnatch.mkv -ss 5 -t 37.4 1QA.mkv 2>/dev/null
81ffmpeg -ss 01:55:01.840 -i bandersnatch.mkv -ss 5 -t 116.6 1GB.mkv 2>/dev/null
82ffmpeg -ss 01:56:58.440 -i bandersnatch.mkv -ss 5 -t 22.52 1QB.mkv 2>/dev/null
83ffmpeg -ss 01:57:20.960 -i bandersnatch.mkv -ss 5 -t 26.56 3L.mkv 2>/dev/null
84ffmpeg -ss 01:57:47.520 -i bandersnatch.mkv -ss 5 -t 31.76 ZP.mkv 2>/dev/null
85ffmpeg -ss 01:58:19.280 -i bandersnatch.mkv -ss 5 -t 34.24 ZJ.mkv 2>/dev/null
86ffmpeg -ss 01:58:53.520 -i bandersnatch.mkv -ss 5 -t 118.48 3AD.mkv 2>/dev/null
87ffmpeg -ss 02:00:52.000 -i bandersnatch.mkv -ss 5 -t 53.92 3AK.mkv 2>/dev/null
88ffmpeg -ss 02:01:45.920 -i bandersnatch.mkv -ss 5 -t 43.2 4C1.mkv 2>/dev/null
89ffmpeg -ss 02:02:29.120 -i bandersnatch.mkv -ss 5 -t 16.12 ZMC.mkv 2>/dev/null
90ffmpeg -ss 02:02:45.240 -i bandersnatch.mkv -ss 5 -t 62.52 6B.mkv 2>/dev/null
91ffmpeg -ss 02:03:47.760 -i bandersnatch.mkv -ss 5 -t 72.68 6D.mkv 2>/dev/null
92ffmpeg -ss 02:05:00.440 -i bandersnatch.mkv -ss 5 -t 45.32 8Da.mkv 2>/dev/null
93ffmpeg -ss 02:05:45.760 -i bandersnatch.mkv -ss 5 -t 174.36 2Bt1.mkv 2>/dev/null
94ffmpeg -ss 02:08:40.120 -i bandersnatch.mkv -ss 5 -t 169.84 2Bp2.mkv 2>/dev/null
95ffmpeg -ss 02:11:29.960 -i bandersnatch.mkv -ss 5 -t 31.08 2GA.mkv 2>/dev/null
96ffmpeg -ss 02:12:01.040 -i bandersnatch.mkv -ss 5 -t 174.36 2Bp1.mkv 2>/dev/null
97ffmpeg -ss 02:14:55.400 -i bandersnatch.mkv -ss 5 -t 169.84 2Bt2.mkv 2>/dev/null
98ffmpeg -ss 02:17:45.240 -i bandersnatch.mkv -ss 5 -t 9.96 3LA.mkv 2>/dev/null
99ffmpeg -ss 02:17:55.200 -i bandersnatch.mkv -ss 5 -t 244.96 3Vff.mkv 2>/dev/null
100ffmpeg -ss 02:22:00.160 -i bandersnatch.mkv -ss 5 -t 242.28 3Vbf.mkv 2>/dev/null
101ffmpeg -ss 02:26:02.440 -i bandersnatch.mkv -ss 5 -t 242.28 3Vbs.mkv 2>/dev/null
102ffmpeg -ss 02:30:04.720 -i bandersnatch.mkv -ss 5 -t 269.52 3Wbf.mkv 2>/dev/null
103ffmpeg -ss 02:34:34.240 -i bandersnatch.mkv -ss 5 -t 269.52 3Wbs.mkv 2>/dev/null
104ffmpeg -ss 02:39:03.760 -i bandersnatch.mkv -ss 5 -t 272.72 3Wfs.mkv 2>/dev/null
105ffmpeg -ss 02:43:36.480 -i bandersnatch.mkv -ss 5 -t 87.04 3AC.mkv 2>/dev/null
106ffmpeg -ss 02:45:03.520 -i bandersnatch.mkv -ss 5 -t 36.12 ZK1.mkv 2>/dev/null
107ffmpeg -ss 02:45:39.640 -i bandersnatch.mkv -ss 5 -t 55.24 3AL.mkv 2>/dev/null
108ffmpeg -ss 02:46:34.880 -i bandersnatch.mkv -ss 5 -t 36.12 ZK2.mkv 2>/dev/null
109ffmpeg -ss 02:47:11.000 -i bandersnatch.mkv -ss 5 -t 118.48 3AD1.mkv 2>/dev/null
110ffmpeg -ss 02:49:09.480 -i bandersnatch.mkv -ss 5 -t 81.52 3AC1.mkv 2>/dev/null
111ffmpeg -ss 02:50:31.000 -i bandersnatch.mkv -ss 5 -t 149.16 3AB1.mkv 2>/dev/null
112ffmpeg -ss 02:53:00.160 -i bandersnatch.mkv -ss 5 -t 149.16 3AB2.mkv 2>/dev/null
113ffmpeg -ss 02:55:29.320 -i bandersnatch.mkv -ss 5 -t 101.8 3AJ1.mkv 2>/dev/null
114ffmpeg -ss 02:57:11.120 -i bandersnatch.mkv -ss 5 -t 101.8 3AJ2.mkv 2>/dev/null
115ffmpeg -ss 02:58:52.920 -i bandersnatch.mkv -ss 5 -t 147.92 3AH2.mkv 2>/dev/null
116ffmpeg -ss 03:01:20.840 -i bandersnatch.mkv -ss 5 -t 22.32 ZMB.mkv 2>/dev/null
117ffmpeg -ss 03:01:43.160 -i bandersnatch.mkv -ss 5 -t 78.92 3VB.mkv 2>/dev/null
118ffmpeg -ss 03:03:02.080 -i bandersnatch.mkv -ss 5 -t 107.32 3AJ.mkv 2>/dev/null
119ffmpeg -ss 03:04:49.400 -i bandersnatch.mkv -ss 5 -t 42.2 4D1.mkv 2>/dev/null
120ffmpeg -ss 03:05:31.600 -i bandersnatch.mkv -ss 5 -t 147.92 3AH1.mkv 2>/dev/null
121ffmpeg -ss 03:07:59.520 -i bandersnatch.mkv -ss 5 -t 36.12 ZK.mkv 2>/dev/null
122ffmpeg -ss 03:08:35.640 -i bandersnatch.mkv -ss 5 -t 48.4 3AK2.mkv 2>/dev/null
123ffmpeg -ss 03:09:24.040 -i bandersnatch.mkv -ss 5 -t 65.16 ZH.mkv 2>/dev/null
124ffmpeg -ss 03:10:29.200 -i bandersnatch.mkv -ss 5 -t 48.76 2Gp1.mkv 2>/dev/null
125ffmpeg -ss 03:11:17.960 -i bandersnatch.mkv -ss 5 -t 48.76 2Gt1.mkv 2>/dev/null
126ffmpeg -ss 03:12:06.720 -i bandersnatch.mkv -ss 5 -t 44.24 2Gp2.mkv 2>/dev/null
127ffmpeg -ss 03:12:50.960 -i bandersnatch.mkv -ss 5 -t 44.24 2Gt2.mkv 2>/dev/null
128ffmpeg -ss 03:13:35.200 -i bandersnatch.mkv -ss 5 -t 71.44 2G.mkv 2>/dev/null
129ffmpeg -ss 03:14:46.640 -i bandersnatch.mkv -ss 5 -t 188.28 1S.mkv 2>/dev/null
130ffmpeg -ss 03:17:54.920 -i bandersnatch.mkv -ss 5 -t 49.72 3AL1.mkv 2>/dev/null
131ffmpeg -ss 03:18:44.640 -i bandersnatch.mkv -ss 5 -t 48.4 3AK1.mkv 2>/dev/null
132ffmpeg -ss 03:19:33.040 -i bandersnatch.mkv -ss 5 -t 229.88 3AF2.mkv 2>/dev/null
133ffmpeg -ss 03:23:22.920 -i bandersnatch.mkv -ss 5 -t 49.72 3AL2.mkv 2>/dev/null
134ffmpeg -ss 03:24:12.640 -i bandersnatch.mkv -ss 5 -t 42.2 4D2.mkv 2>/dev/null
135ffmpeg -ss 03:24:54.840 -i bandersnatch.mkv -ss 5 -t 235.4 3AF.mkv 2>/dev/null
136ffmpeg -ss 03:28:50.240 -i bandersnatch.mkv -ss 5 -t 34.64 3Xac.mkv 2>/dev/null
137ffmpeg -ss 03:29:24.880 -i bandersnatch.mkv -ss 5 -t 68.68 3VA.mkv 2>/dev/null
138ffmpeg -ss 03:30:33.560 -i bandersnatch.mkv -ss 5 -t 30.52 3Xa.mkv 2>/dev/null
139ffmpeg -ss 03:31:04.080 -i bandersnatch.mkv -ss 5 -t 54.2 ZQ.mkv 2>/dev/null
140ffmpeg -ss 03:31:58.280 -i bandersnatch.mkv -ss 5 -t 118.48 3AD2.mkv 2>/dev/null
141ffmpeg -ss 03:33:56.760 -i bandersnatch.mkv -ss 5 -t 56.56 ZG.mkv 2>/dev/null
142ffmpeg -ss 03:34:53.320 -i bandersnatch.mkv -ss 5 -t 115.92 1HB.mkv 2>/dev/null
143ffmpeg -ss 03:36:49.240 -i bandersnatch.mkv -ss 5 -t 31.96 8JB1.mkv 2>/dev/null
144ffmpeg -ss 03:37:21.200 -i bandersnatch.mkv -ss 5 -t 31.96 8JB2.mkv 2>/dev/null
145ffmpeg -ss 03:37:53.160 -i bandersnatch.mkv -ss 5 -t 147.24 5Mpc.mkv 2>/dev/null
146ffmpeg -ss 03:40:20.400 -i bandersnatch.mkv -ss 5 -t 147.24 5Mtc.mkv 2>/dev/null
147ffmpeg -ss 03:42:47.640 -i bandersnatch.mkv -ss 5 -t 157.16 5Mt.mkv 2>/dev/null
148ffmpeg -ss 03:45:24.800 -i bandersnatch.mkv -ss 5 -t 49.96 5Q.mkv 2>/dev/null
149ffmpeg -ss 03:46:14.760 -i bandersnatch.mkv -ss 5 -t 29.6 5U.mkv 2>/dev/null
150ffmpeg -ss 03:46:44.360 -i bandersnatch.mkv -ss 5 -t 38.0 5R.mkv 2>/dev/null
151ffmpeg -ss 03:47:22.360 -i bandersnatch.mkv -ss 5 -t 44.28 5RA.mkv 2>/dev/null
152ffmpeg -ss 03:48:06.640 -i bandersnatch.mkv -ss 5 -t 27.68 5S.mkv 2>/dev/null
153ffmpeg -ss 03:48:34.320 -i bandersnatch.mkv -ss 5 -t 41.08 5SA.mkv 2>/dev/null
154ffmpeg -ss 03:49:15.400 -i bandersnatch.mkv -ss 5 -t 41.16 5TA.mkv 2>/dev/null
155ffmpeg -ss 03:49:56.560 -i bandersnatch.mkv -ss 5 -t 79.16 5AG2.mkv 2>/dev/null
156ffmpeg -ss 03:51:15.720 -i bandersnatch.mkv -ss 5 -t 47.8 5AH.mkv 2>/dev/null
157ffmpeg -ss 03:52:03.520 -i bandersnatch.mkv -ss 5 -t 102.36 8M.mkv 2>/dev/null
158ffmpeg -ss 03:53:45.880 -i bandersnatch.mkv -ss 5 -t 92.4 5AC.mkv 2>/dev/null
159ffmpeg -ss 03:55:18.280 -i bandersnatch.mkv -ss 5 -t 94.08 8V.mkv 2>/dev/null
160ffmpeg -ss 03:56:52.360 -i bandersnatch.mkv -ss 5 -t 50.44 5AC2.mkv 2>/dev/null
161ffmpeg -ss 03:57:42.800 -i bandersnatch.mkv -ss 5 -t 94.08 8Va.mkv 2>/dev/null
162ffmpeg -ss 03:59:16.880 -i bandersnatch.mkv -ss 5 -t 48.96 R2cd.mkv 2>/dev/null
163ffmpeg -ss 04:00:05.840 -i bandersnatch.mkv -ss 5 -t 36.12 ZK3.mkv 2>/dev/null
164ffmpeg -ss 04:00:41.960 -i bandersnatch.mkv -ss 5 -t 42.64 5AD2.mkv 2>/dev/null
165ffmpeg -ss 04:01:24.600 -i bandersnatch.mkv -ss 5 -t 104.4 5AE.mkv 2>/dev/null
166ffmpeg -ss 04:03:09.000 -i bandersnatch.mkv -ss 5 -t 102.4 8Qa.mkv 2>/dev/null
167ffmpeg -ss 04:04:51.400 -i bandersnatch.mkv -ss 5 -t 109.16 5AG.mkv 2>/dev/null
168ffmpeg -ss 04:06:40.560 -i bandersnatch.mkv -ss 5 -t 56.48 5AJ.mkv 2>/dev/null
169ffmpeg -ss 04:07:37.040 -i bandersnatch.mkv -ss 5 -t 85.8 8S.mkv 2>/dev/null
170ffmpeg -ss 04:09:02.840 -i bandersnatch.mkv -ss 5 -t 85.8 8Sa.mkv 2>/dev/null
171ffmpeg -ss 04:10:28.640 -i bandersnatch.mkv -ss 5 -t 274.4 3P.mkv 2>/dev/null
172ffmpeg -ss 04:15:03.040 -i bandersnatch.mkv -ss 5 -t 102.36 8Ma.mkv 2>/dev/null
173ffmpeg -ss 04:16:45.400 -i bandersnatch.mkv -ss 5 -t 16.72 7J.mkv 2>/dev/null
174ffmpeg -ss 04:17:02.120 -i bandersnatch.mkv -ss 5 -t 52.96 3T.mkv 2>/dev/null
175ffmpeg -ss 04:17:55.080 -i bandersnatch.mkv -ss 5 -t 17.32 5G.mkv 2>/dev/null
176ffmpeg -ss 04:18:12.400 -i bandersnatch.mkv -ss 5 -t 40.76 5T.mkv 2>/dev/null
177ffmpeg -ss 04:18:53.160 -i bandersnatch.mkv -ss 5 -t 46.36 ZB.mkv 2>/dev/null
178ffmpeg -ss 04:19:39.520 -i bandersnatch.mkv -ss 5 -t 48.36 Z1.mkv 2>/dev/null
179ffmpeg -ss 04:20:27.880 -i bandersnatch.mkv -ss 5 -t 25.84 Z2.mkv 2>/dev/null
180ffmpeg -ss 04:20:53.720 -i bandersnatch.mkv -ss 5 -t 26.32 Z3.mkv 2>/dev/null
181ffmpeg -ss 04:21:20.040 -i bandersnatch.mkv -ss 5 -t 30.12 Z3cd.mkv 2>/dev/null
182ffmpeg -ss 04:21:50.160 -i bandersnatch.mkv -ss 5 -t 37.64 Z4.mkv 2>/dev/null
183ffmpeg -ss 04:22:27.800 -i bandersnatch.mkv -ss 5 -t 47.04 Z4cd.mkv 2>/dev/null
184ffmpeg -ss 04:23:14.840 -i bandersnatch.mkv -ss 5 -t 59.12 ZD.mkv 2>/dev/null
185ffmpeg -ss 04:24:13.960 -i bandersnatch.mkv -ss 5 -t 61.12 ZE.mkv 2>/dev/null
186ffmpeg -ss 04:25:15.080 -i bandersnatch.mkv -ss 5 -t 31.64 SS1.mkv 2>/dev/null
187ffmpeg -ss 04:25:46.720 -i bandersnatch.mkv -ss 5 -t 31.6 SS2.mkv 2>/dev/null
188ffmpeg -ss 04:26:18.320 -i bandersnatch.mkv -ss 5 -t 32.88 R1.mkv 2>/dev/null
189ffmpeg -ss 04:26:51.200 -i bandersnatch.mkv -ss 5 -t 31.6 SS3.mkv 2>/dev/null
190ffmpeg -ss 04:27:22.800 -i bandersnatch.mkv -ss 5 -t 31.6 SS4.mkv 2>/dev/null
191ffmpeg -ss 04:27:54.400 -i bandersnatch.mkv -ss 5 -t 31.6 SS5.mkv 2>/dev/null
192ffmpeg -ss 04:28:26.000 -i bandersnatch.mkv -ss 5 -t 31.6 SS6.mkv 2>/dev/null
193ffmpeg -ss 04:28:57.600 -i bandersnatch.mkv -ss 5 -t 30.16 R3.mkv 2>/dev/null
194ffmpeg -ss 04:29:27.760 -i bandersnatch.mkv -ss 5 -t 31.6 SS7.mkv 2>/dev/null
195ffmpeg -ss 04:29:59.360 -i bandersnatch.mkv -ss 5 -t 31.6 SS8.mkv 2>/dev/null
196ffmpeg -ss 04:30:30.960 -i bandersnatch.mkv -ss 5 -t 31.6 SS9.mkv 2>/dev/null
197ffmpeg -ss 04:31:02.560 -i bandersnatch.mkv -ss 5 -t 31.64 SS11.mkv 2>/dev/null
198ffmpeg -ss 04:31:34.200 -i bandersnatch.mkv -ss 5 -t 31.68 SS12.mkv 2>/dev/null
199ffmpeg -ss 04:32:05.880 -i bandersnatch.mkv -ss 5 -t 31.64 SS14.mkv 2>/dev/null
200ffmpeg -ss 04:32:37.520 -i bandersnatch.mkv -ss 5 -t 30.84 3Xxc.mkv 2>/dev/null
201ffmpeg -ss 04:33:08.360 -i bandersnatch.mkv -ss 5 -t 31.64 SS16.mkv 2>/dev/null
202ffmpeg -ss 04:33:40.000 -i bandersnatch.mkv -ss 5 -t 31.64 SS18.mkv 2>/dev/null
203ffmpeg -ss 04:34:11.640 -i bandersnatch.mkv -ss 5 -t 31.64 SS19.mkv 2>/dev/null
204ffmpeg -ss 04:34:43.280 -i bandersnatch.mkv -ss 5 -t 34.56 R5.mkv 2>/dev/null
205ffmpeg -ss 04:35:17.840 -i bandersnatch.mkv -ss 5 -t 31.6 SS21.mkv 2>/dev/null
206ffmpeg -ss 04:35:49.440 -i bandersnatch.mkv -ss 5 -t 31.6 SS22.mkv 2>/dev/null
207ffmpeg -ss 04:36:21.040 -i bandersnatch.mkv -ss 5 -t 31.6 SS50.mkv 2>/dev/null
208ffmpeg -ss 04:36:52.640 -i bandersnatch.mkv -ss 5 -t 41.6 R3cd.mkv 2>/dev/null
209ffmpeg -ss 04:37:34.240 -i bandersnatch.mkv -ss 5 -t 38.2 R4cd.mkv 2>/dev/null
210ffmpeg -ss 04:38:12.440 -i bandersnatch.mkv -ss 5 -t 31.6 SS53.mkv 2>/dev/null
211ffmpeg -ss 04:38:44.040 -i bandersnatch.mkv -ss 5 -t 31.6 SS54.mkv 2>/dev/null
212ffmpeg -ss 04:39:15.640 -i bandersnatch.mkv -ss 5 -t 31.6 SS55.mkv 2>/dev/null
213ffmpeg -ss 04:39:47.240 -i bandersnatch.mkv -ss 5 -t 47.0 R1cd.mkv 2>/dev/null
214ffmpeg -ss 04:40:34.240 -i bandersnatch.mkv -ss 5 -t 60.56 S44B.mkv 2>/dev/null
215ffmpeg -ss 04:41:34.800 -i bandersnatch.mkv -ss 5 -t 60.6 S34B.mkv 2>/dev/null
216ffmpeg -ss 04:42:35.400 -i bandersnatch.mkv -ss 5 -t 60.56 S35B.mkv 2>/dev/null
217ffmpeg -ss 04:43:35.960 -i bandersnatch.mkv -ss 5 -t 60.56 S59B.mkv 2>/dev/null
218ffmpeg -ss 04:44:36.520 -i bandersnatch.mkv -ss 5 -t 60.56 S36B.mkv 2>/dev/null
219ffmpeg -ss 04:45:37.080 -i bandersnatch.mkv -ss 5 -t 60.56 S37B.mkv 2>/dev/null
220ffmpeg -ss 04:46:37.640 -i bandersnatch.mkv -ss 5 -t 60.56 S38B.mkv 2>/dev/null
221ffmpeg -ss 04:47:38.200 -i bandersnatch.mkv -ss 5 -t 60.24 S38A.mkv 2>/dev/null
222ffmpeg -ss 04:48:38.440 -i bandersnatch.mkv -ss 5 -t 60.24 S44A.mkv 2>/dev/null
223ffmpeg -ss 04:49:38.680 -i bandersnatch.mkv -ss 5 -t 60.24 S34A.mkv 2>/dev/null
224ffmpeg -ss 04:50:38.920 -i bandersnatch.mkv -ss 5 -t 60.24 S59A.mkv 2>/dev/null
225ffmpeg -ss 04:51:39.160 -i bandersnatch.mkv -ss 5 -t 60.24 S35A.mkv 2>/dev/null
226ffmpeg -ss 04:52:39.400 -i bandersnatch.mkv -ss 5 -t 60.24 S36A.mkv 2>/dev/null
227ffmpeg -ss 04:53:39.640 -i bandersnatch.mkv -ss 5 -t 45.4 Z62a.mkv 2>/dev/null
228ffmpeg -ss 04:54:25.040 -i bandersnatch.mkv -ss 5 -t 41.6 Z62b.mkv 2>/dev/null
229ffmpeg -ss 04:55:06.640 -i bandersnatch.mkv -ss 5 -t 56.92 Z62c.mkv 2>/dev/null
230ffmpeg -ss 04:56:03.560 -i bandersnatch.mkv -ss 5 -t 51.8 Z62d.mkv 2>/dev/null
231ffmpeg -ss 04:56:55.360 -i bandersnatch.mkv -ss 5 -t 48.52 Z62e.mkv 2>/dev/null
232ffmpeg -ss 04:57:43.880 -i bandersnatch.mkv -ss 5 -t 44.76 Z62f.mkv 2>/dev/null
233ffmpeg -ss 04:58:28.640 -i bandersnatch.mkv -ss 5 -t 45.4 Z61a.mkv 2>/dev/null
234ffmpeg -ss 04:59:14.040 -i bandersnatch.mkv -ss 5 -t 41.6 Z61b.mkv 2>/dev/null
235ffmpeg -ss 04:59:55.640 -i bandersnatch.mkv -ss 5 -t 56.92 Z61c.mkv 2>/dev/null
236ffmpeg -ss 05:00:52.560 -i bandersnatch.mkv -ss 5 -t 51.8 Z61d.mkv 2>/dev/null
237ffmpeg -ss 05:01:44.360 -i bandersnatch.mkv -ss 5 -t 48.52 Z61e.mkv 2>/dev/null
238ffmpeg -ss 05:02:32.880 -i bandersnatch.mkv -ss 5 -t 44.76 Z61f.mkv 2>/dev/null
239ffmpeg -ss 05:03:17.640 -i bandersnatch.mkv -ss 5 -t 26.4 Z7a.mkv 2>/dev/null
240ffmpeg -ss 05:03:44.040 -i bandersnatch.mkv -ss 5 -t 23.0 Z7b.mkv 2>/dev/null
241ffmpeg -ss 05:04:07.040 -i bandersnatch.mkv -ss 5 -t 36.6 Z7d.mkv 2>/dev/null
242ffmpeg -ss 05:04:43.640 -i bandersnatch.mkv -ss 5 -t 31.64 Z7e.mkv 2>/dev/null
243ffmpeg -ss 05:05:15.280 -i bandersnatch.mkv -ss 5 -t 28.0 Z7f.mkv 2>/dev/null
244ffmpeg -ss 05:05:43.280 -i bandersnatch.mkv -ss 5 -t 5.56 8KB.mkv 2>/dev/null
245ffmpeg -ss 05:05:48.840 -i bandersnatch.mkv -ss 5 -t 5.24 8KA.mkv 2>/dev/null
246ffmpeg -ss 05:05:54.080 -i bandersnatch.mkv -ss 5 -t 156.24 0cr3.mkv 2>/dev/null
247ffmpeg -ss 05:08:30.320 -i bandersnatch.mkv -ss 5 -t 79.88 0Cr4.mkv 2>/dev/null
248ffmpeg -ss 05:09:50.200 -i bandersnatch.mkv -ss 5 -t 51.04 0cr1.mkv 2>/dev/null
249ffmpeg -ss 05:10:41.240 -i bandersnatch.mkv -ss 5 -t 78.04 0cr2.mkv 2>/dev/null
250ffmpeg -ss 05:11:59.280 -i bandersnatch.mkv -ss 5 IDNT.mkv 2>/dev/null