Skip to content

Instantly share code, notes, and snippets.

@blha303
Last active August 20, 2021 03:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save blha303/3036ae8d32a50b69f78dca4af2f58348 to your computer and use it in GitHub Desktop.
Save blha303/3036ae8d32a50b69f78dca4af2f58348 to your computer and use it in GitHub Desktop.
Code to make your own Black Mirror: Bandersnatch

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`
#!/usr/bin/env python3
from __future__ import print_function
from random import choice
import json
from sys import stderr
with open("bandersnatch.json") as f:
bandersnatch = json.load(f)
with open("SegmentMap.json") as f:
smap = json.load(f)
initial_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 }
state = dict(initial_state)
moments = bandersnatch["videos"]["80988062"]["interactiveVideoMoments"]["value"]["momentsBySegment"]
preconditions = bandersnatch["videos"]["80988062"]["interactiveVideoMoments"]["value"]["preconditions"]
segmentGroups = bandersnatch["videos"]["80988062"]["interactiveVideoMoments"]["value"]["segmentGroups"]
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)
def conditionHandler(cond):
global state
if not cond:
return True
if cond[0] == "persistentState":
return state[cond[1]]
if cond[0] == "not":
return not all(conditionHandler(c) for c in cond[1:])
if cond[0] == "and":
return all(conditionHandler(c) for c in cond[1:])
if cond[0] == "eql":
return conditionHandler(cond[1]) == cond[2]
if cond[0] == "or":
return any(conditionHandler(c) for c in cond[1:])
def groupHandler(group, segment=None):
out = []
if segment:
group.append(segment)
for item in group:
if type(item) is str and conditionHandler( preconditions.get(item,[]) ):
out.append(item)
if type(item) is dict:
if "segmentGroup" in item:
out += groupHandler(segmentGroups[item["segmentGroup"]])
if "precondition" in item:
if conditionHandler( preconditions.get(item["precondition"],[]) ):
out.append(item["segment"])
print("out="+repr(out),file=stderr)
return out
def followTheStory(segment):
global state
global history
possibilities = []
if segment in moments:
m = moments[segment]
for moment in m:
if moment["type"] == "notification:playbackImpression":
state.update( moment.get("impressionData",{}).get("data", {}).get("persistent", {}) )
if moment["type"] == "scene:cs_bs":
for option in moment["choices"]:
state.update( option.get("impressionData",{}).get("data", {}).get("persistent", {}) )
if "segmentId" in option:
p = groupHandler([option["segmentId"]])
elif "sg" in option:
p = groupHandler(segmentGroups[option["sg"]])
elif moment["trackingInfo"]["optionType"] == "fakeOption":
continue
else:
raise Exception(option["id"])
possibilities += p
if moment["type"] == "notification:action":
possibilities.append(segment)
if segment in segmentGroups:
possibilities += groupHandler(segmentGroups[segment])
print("poss="+repr(possibilities),file=stderr)
if not possibilities:
# raise Exception("hoi")
possibilities += groupHandler(segmentGroups["respawnOptions"])
return choice(possibilities)
def bandersnatch():
global state
state = dict(initial_state)
current_segment = "1A"
while True:
state["length"] += smap[current_segment]["endTimeMs"] - smap[current_segment]["startTimeMs"]
if current_segment[:3].lower() == "0cr":
print("file '{}.mkv'".format(current_segment))
print("file 'IDNT.mkv'")
print("picked {} and added IDNT".format(current_segment), file=stderr)
state["length"] += 10
break
print("file '{}.mkv'".format(current_segment))
print("picked {}".format(current_segment), file=stderr)
current_segment = followTheStory(current_segment)
if current_segment is None:
break
return msToTS(state["length"])
if __name__ == "__main__":
print(bandersnatch(),file=stderr)
ffmpeg -i bandersnatch.mkv -ss 5 -t 153.52 1A.mkv 2>/dev/null
ffmpeg -ss 00:02:28.560 -i bandersnatch.mkv -ss 5 -t 53.72 1E.mkv 2>/dev/null
ffmpeg -ss 00:03:22.280 -i bandersnatch.mkv -ss 5 -t 274.12 1H.mkv 2>/dev/null
ffmpeg -ss 00:07:56.400 -i bandersnatch.mkv -ss 5 -t 89.96 8A.mkv 2>/dev/null
ffmpeg -ss 00:09:26.360 -i bandersnatch.mkv -ss 5 -t 139.92 1HA.mkv 2>/dev/null
ffmpeg -ss 00:11:46.280 -i bandersnatch.mkv -ss 5 -t 317.36 1Qtt.mkv 2>/dev/null
ffmpeg -ss 00:17:03.640 -i bandersnatch.mkv -ss 5 -t 196.6 2B.mkv 2>/dev/null
ffmpeg -ss 00:20:20.240 -i bandersnatch.mkv -ss 5 -t 189.84 1R.mkv 2>/dev/null
ffmpeg -ss 00:23:30.080 -i bandersnatch.mkv -ss 5 -t 10.28 3B.mkv 2>/dev/null
ffmpeg -ss 00:23:40.360 -i bandersnatch.mkv -ss 5 -t 31.64 SS13.mkv 2>/dev/null
ffmpeg -ss 00:24:12.000 -i bandersnatch.mkv -ss 5 -t 30.0 3Ax.mkv 2>/dev/null
ffmpeg -ss 00:24:42.000 -i bandersnatch.mkv -ss 5 -t 22.12 3C.mkv 2>/dev/null
ffmpeg -ss 00:25:04.120 -i bandersnatch.mkv -ss 5 -t 68.04 3J.mkv 2>/dev/null
ffmpeg -ss 00:26:12.160 -i bandersnatch.mkv -ss 5 -t 68.68 3R.mkv 2>/dev/null
ffmpeg -ss 00:27:20.840 -i bandersnatch.mkv -ss 5 -t 52.36 3U.mkv 2>/dev/null
ffmpeg -ss 00:28:13.200 -i bandersnatch.mkv -ss 5 -t 40.72 3X.mkv 2>/dev/null
ffmpeg -ss 00:28:53.920 -i bandersnatch.mkv -ss 5 -t 64.12 8B.mkv 2>/dev/null
ffmpeg -ss 00:29:58.040 -i bandersnatch.mkv -ss 5 -t 31.64 SS15.mkv 2>/dev/null
ffmpeg -ss 00:30:29.680 -i bandersnatch.mkv -ss 5 -t 30.0 3Xxa.mkv 2>/dev/null
ffmpeg -ss 00:30:59.680 -i bandersnatch.mkv -ss 5 -t 244.96 3Vfs.mkv 2>/dev/null
ffmpeg -ss 00:35:04.640 -i bandersnatch.mkv -ss 5 -t 19.52 3Y.mkv 2>/dev/null
ffmpeg -ss 00:35:24.160 -i bandersnatch.mkv -ss 5 -t 31.64 SS17.mkv 2>/dev/null
ffmpeg -ss 00:35:55.800 -i bandersnatch.mkv -ss 5 -t 32.96 3Vx.mkv 2>/dev/null
ffmpeg -ss 00:36:28.760 -i bandersnatch.mkv -ss 5 -t 54.24 3Z.mkv 2>/dev/null
ffmpeg -ss 00:37:23.000 -i bandersnatch.mkv -ss 5 -t 153.44 3AH.mkv 2>/dev/null
ffmpeg -ss 00:39:56.440 -i bandersnatch.mkv -ss 5 -t 43.2 4C2.mkv 2>/dev/null
ffmpeg -ss 00:40:39.640 -i bandersnatch.mkv -ss 5 -t 30.2 7A.mkv 2>/dev/null
ffmpeg -ss 00:41:09.840 -i bandersnatch.mkv -ss 5 -t 24.64 7B.mkv 2>/dev/null
ffmpeg -ss 00:41:34.480 -i bandersnatch.mkv -ss 5 -t 14.08 7C.mkv 2>/dev/null
ffmpeg -ss 00:41:48.560 -i bandersnatch.mkv -ss 5 -t 145.76 7D.mkv 2>/dev/null
ffmpeg -ss 00:44:14.320 -i bandersnatch.mkv -ss 5 -t 59.76 7L.mkv 2>/dev/null
ffmpeg -ss 00:45:14.080 -i bandersnatch.mkv -ss 5 -t 31.6 SS51.mkv 2>/dev/null
ffmpeg -ss 00:45:45.680 -i bandersnatch.mkv -ss 5 -t 26.16 R4.mkv 2>/dev/null
ffmpeg -ss 00:46:11.840 -i bandersnatch.mkv -ss 5 -t 207.04 3M.mkv 2>/dev/null
ffmpeg -ss 00:49:38.880 -i bandersnatch.mkv -ss 5 -t 269.68 3N.mkv 2>/dev/null
ffmpeg -ss 00:54:08.560 -i bandersnatch.mkv -ss 5 -t 74.28 8L.mkv 2>/dev/null
ffmpeg -ss 00:55:22.840 -i bandersnatch.mkv -ss 5 -t 31.64 SS20.mkv 2>/dev/null
ffmpeg -ss 00:55:54.480 -i bandersnatch.mkv -ss 5 -t 31.24 3Nx.mkv 2>/dev/null
ffmpeg -ss 00:56:25.720 -i bandersnatch.mkv -ss 5 -t 58.52 3Q.mkv 2>/dev/null
ffmpeg -ss 00:57:24.240 -i bandersnatch.mkv -ss 5 -t 19.16 3S.mkv 2>/dev/null
ffmpeg -ss 00:57:43.400 -i bandersnatch.mkv -ss 5 -t 83.0 ZHw6.mkv 2>/dev/null
ffmpeg -ss 00:59:06.400 -i bandersnatch.mkv -ss 5 -t 81.52 3AC2.mkv 2>/dev/null
ffmpeg -ss 01:00:27.920 -i bandersnatch.mkv -ss 5 -t 51.84 5A.mkv 2>/dev/null
ffmpeg -ss 01:01:19.760 -i bandersnatch.mkv -ss 5 -t 17.36 5H.mkv 2>/dev/null
ffmpeg -ss 01:01:37.120 -i bandersnatch.mkv -ss 5 -t 45.56 5V.mkv 2>/dev/null
ffmpeg -ss 01:02:22.680 -i bandersnatch.mkv -ss 5 -t 47.76 5QA.mkv 2>/dev/null
ffmpeg -ss 01:03:10.440 -i bandersnatch.mkv -ss 5 -t 35.88 5UA.mkv 2>/dev/null
ffmpeg -ss 01:03:46.320 -i bandersnatch.mkv -ss 5 -t 72.64 5AD.mkv 2>/dev/null
ffmpeg -ss 01:04:58.960 -i bandersnatch.mkv -ss 5 -t 78.52 5AF.mkv 2>/dev/null
ffmpeg -ss 01:06:17.480 -i bandersnatch.mkv -ss 5 -t 102.4 8Q.mkv 2>/dev/null
ffmpeg -ss 01:07:59.880 -i bandersnatch.mkv -ss 5 -t 31.6 SS52.mkv 2>/dev/null
ffmpeg -ss 01:08:31.480 -i bandersnatch.mkv -ss 5 -t 38.92 Z7c.mkv 2>/dev/null
ffmpeg -ss 01:09:10.400 -i bandersnatch.mkv -ss 5 -t 26.72 5VA.mkv 2>/dev/null
ffmpeg -ss 01:09:37.120 -i bandersnatch.mkv -ss 5 -t 157.8 5Mp.mkv 2>/dev/null
ffmpeg -ss 01:12:14.920 -i bandersnatch.mkv -ss 5 -t 125.84 8K.mkv 2>/dev/null
ffmpeg -ss 01:14:20.760 -i bandersnatch.mkv -ss 5 -t 60.24 S37A.mkv 2>/dev/null
ffmpeg -ss 01:15:21.000 -i bandersnatch.mkv -ss 5 -t 33.68 R2.mkv 2>/dev/null
ffmpeg -ss 01:15:54.680 -i bandersnatch.mkv -ss 5 -t 118.48 3AD3.mkv 2>/dev/null
ffmpeg -ss 01:17:53.160 -i bandersnatch.mkv -ss 5 -t 113.0 8J.mkv 2>/dev/null
ffmpeg -ss 01:19:46.160 -i bandersnatch.mkv -ss 5 -t 78.4 8JA.mkv 2>/dev/null
ffmpeg -ss 01:21:04.560 -i bandersnatch.mkv -ss 5 -t 31.6 SS57.mkv 2>/dev/null
ffmpeg -ss 01:21:36.160 -i bandersnatch.mkv -ss 5 -t 48.36 R6.mkv 2>/dev/null
ffmpeg -ss 01:22:24.520 -i bandersnatch.mkv -ss 5 -t 229.88 3AF1.mkv 2>/dev/null
ffmpeg -ss 01:26:14.400 -i bandersnatch.mkv -ss 5 -t 129.84 6A.mkv 2>/dev/null
ffmpeg -ss 01:28:24.240 -i bandersnatch.mkv -ss 5 -t 87.96 6C.mkv 2>/dev/null
ffmpeg -ss 01:29:52.200 -i bandersnatch.mkv -ss 5 -t 45.32 8D.mkv 2>/dev/null
ffmpeg -ss 01:30:37.520 -i bandersnatch.mkv -ss 5 -t 54.4 1D.mkv 2>/dev/null
ffmpeg -ss 01:31:31.920 -i bandersnatch.mkv -ss 5 -t 276.12 1G.mkv 2>/dev/null
ffmpeg -ss 01:36:08.040 -i bandersnatch.mkv -ss 5 -t 140.6 1GA.mkv 2>/dev/null
ffmpeg -ss 01:38:28.640 -i bandersnatch.mkv -ss 5 -t 317.36 1Qnw.mkv 2>/dev/null
ffmpeg -ss 01:43:46.000 -i bandersnatch.mkv -ss 5 -t 40.72 3Xcd.mkv 2>/dev/null
ffmpeg -ss 01:44:26.720 -i bandersnatch.mkv -ss 5 -t 272.72 3Wff.mkv 2>/dev/null
ffmpeg -ss 01:48:59.440 -i bandersnatch.mkv -ss 5 -t 154.68 3AB.mkv 2>/dev/null
ffmpeg -ss 01:51:34.120 -i bandersnatch.mkv -ss 5 -t 32.92 7H.mkv 2>/dev/null
ffmpeg -ss 01:52:07.040 -i bandersnatch.mkv -ss 5 -t 15.4 7K.mkv 2>/dev/null
ffmpeg -ss 01:52:22.440 -i bandersnatch.mkv -ss 5 -t 31.6 SS56.mkv 2>/dev/null
ffmpeg -ss 01:52:54.040 -i bandersnatch.mkv -ss 5 -t 20.68 8Aa.mkv 2>/dev/null
ffmpeg -ss 01:53:14.720 -i bandersnatch.mkv -ss 5 -t 31.6 SS10.mkv 2>/dev/null
ffmpeg -ss 01:53:46.320 -i bandersnatch.mkv -ss 5 -t 38.12 1PA.mkv 2>/dev/null
ffmpeg -ss 01:54:24.440 -i bandersnatch.mkv -ss 5 -t 37.4 1QA.mkv 2>/dev/null
ffmpeg -ss 01:55:01.840 -i bandersnatch.mkv -ss 5 -t 116.6 1GB.mkv 2>/dev/null
ffmpeg -ss 01:56:58.440 -i bandersnatch.mkv -ss 5 -t 22.52 1QB.mkv 2>/dev/null
ffmpeg -ss 01:57:20.960 -i bandersnatch.mkv -ss 5 -t 26.56 3L.mkv 2>/dev/null
ffmpeg -ss 01:57:47.520 -i bandersnatch.mkv -ss 5 -t 31.76 ZP.mkv 2>/dev/null
ffmpeg -ss 01:58:19.280 -i bandersnatch.mkv -ss 5 -t 34.24 ZJ.mkv 2>/dev/null
ffmpeg -ss 01:58:53.520 -i bandersnatch.mkv -ss 5 -t 118.48 3AD.mkv 2>/dev/null
ffmpeg -ss 02:00:52.000 -i bandersnatch.mkv -ss 5 -t 53.92 3AK.mkv 2>/dev/null
ffmpeg -ss 02:01:45.920 -i bandersnatch.mkv -ss 5 -t 43.2 4C1.mkv 2>/dev/null
ffmpeg -ss 02:02:29.120 -i bandersnatch.mkv -ss 5 -t 16.12 ZMC.mkv 2>/dev/null
ffmpeg -ss 02:02:45.240 -i bandersnatch.mkv -ss 5 -t 62.52 6B.mkv 2>/dev/null
ffmpeg -ss 02:03:47.760 -i bandersnatch.mkv -ss 5 -t 72.68 6D.mkv 2>/dev/null
ffmpeg -ss 02:05:00.440 -i bandersnatch.mkv -ss 5 -t 45.32 8Da.mkv 2>/dev/null
ffmpeg -ss 02:05:45.760 -i bandersnatch.mkv -ss 5 -t 174.36 2Bt1.mkv 2>/dev/null
ffmpeg -ss 02:08:40.120 -i bandersnatch.mkv -ss 5 -t 169.84 2Bp2.mkv 2>/dev/null
ffmpeg -ss 02:11:29.960 -i bandersnatch.mkv -ss 5 -t 31.08 2GA.mkv 2>/dev/null
ffmpeg -ss 02:12:01.040 -i bandersnatch.mkv -ss 5 -t 174.36 2Bp1.mkv 2>/dev/null
ffmpeg -ss 02:14:55.400 -i bandersnatch.mkv -ss 5 -t 169.84 2Bt2.mkv 2>/dev/null
ffmpeg -ss 02:17:45.240 -i bandersnatch.mkv -ss 5 -t 9.96 3LA.mkv 2>/dev/null
ffmpeg -ss 02:17:55.200 -i bandersnatch.mkv -ss 5 -t 244.96 3Vff.mkv 2>/dev/null
ffmpeg -ss 02:22:00.160 -i bandersnatch.mkv -ss 5 -t 242.28 3Vbf.mkv 2>/dev/null
ffmpeg -ss 02:26:02.440 -i bandersnatch.mkv -ss 5 -t 242.28 3Vbs.mkv 2>/dev/null
ffmpeg -ss 02:30:04.720 -i bandersnatch.mkv -ss 5 -t 269.52 3Wbf.mkv 2>/dev/null
ffmpeg -ss 02:34:34.240 -i bandersnatch.mkv -ss 5 -t 269.52 3Wbs.mkv 2>/dev/null
ffmpeg -ss 02:39:03.760 -i bandersnatch.mkv -ss 5 -t 272.72 3Wfs.mkv 2>/dev/null
ffmpeg -ss 02:43:36.480 -i bandersnatch.mkv -ss 5 -t 87.04 3AC.mkv 2>/dev/null
ffmpeg -ss 02:45:03.520 -i bandersnatch.mkv -ss 5 -t 36.12 ZK1.mkv 2>/dev/null
ffmpeg -ss 02:45:39.640 -i bandersnatch.mkv -ss 5 -t 55.24 3AL.mkv 2>/dev/null
ffmpeg -ss 02:46:34.880 -i bandersnatch.mkv -ss 5 -t 36.12 ZK2.mkv 2>/dev/null
ffmpeg -ss 02:47:11.000 -i bandersnatch.mkv -ss 5 -t 118.48 3AD1.mkv 2>/dev/null
ffmpeg -ss 02:49:09.480 -i bandersnatch.mkv -ss 5 -t 81.52 3AC1.mkv 2>/dev/null
ffmpeg -ss 02:50:31.000 -i bandersnatch.mkv -ss 5 -t 149.16 3AB1.mkv 2>/dev/null
ffmpeg -ss 02:53:00.160 -i bandersnatch.mkv -ss 5 -t 149.16 3AB2.mkv 2>/dev/null
ffmpeg -ss 02:55:29.320 -i bandersnatch.mkv -ss 5 -t 101.8 3AJ1.mkv 2>/dev/null
ffmpeg -ss 02:57:11.120 -i bandersnatch.mkv -ss 5 -t 101.8 3AJ2.mkv 2>/dev/null
ffmpeg -ss 02:58:52.920 -i bandersnatch.mkv -ss 5 -t 147.92 3AH2.mkv 2>/dev/null
ffmpeg -ss 03:01:20.840 -i bandersnatch.mkv -ss 5 -t 22.32 ZMB.mkv 2>/dev/null
ffmpeg -ss 03:01:43.160 -i bandersnatch.mkv -ss 5 -t 78.92 3VB.mkv 2>/dev/null
ffmpeg -ss 03:03:02.080 -i bandersnatch.mkv -ss 5 -t 107.32 3AJ.mkv 2>/dev/null
ffmpeg -ss 03:04:49.400 -i bandersnatch.mkv -ss 5 -t 42.2 4D1.mkv 2>/dev/null
ffmpeg -ss 03:05:31.600 -i bandersnatch.mkv -ss 5 -t 147.92 3AH1.mkv 2>/dev/null
ffmpeg -ss 03:07:59.520 -i bandersnatch.mkv -ss 5 -t 36.12 ZK.mkv 2>/dev/null
ffmpeg -ss 03:08:35.640 -i bandersnatch.mkv -ss 5 -t 48.4 3AK2.mkv 2>/dev/null
ffmpeg -ss 03:09:24.040 -i bandersnatch.mkv -ss 5 -t 65.16 ZH.mkv 2>/dev/null
ffmpeg -ss 03:10:29.200 -i bandersnatch.mkv -ss 5 -t 48.76 2Gp1.mkv 2>/dev/null
ffmpeg -ss 03:11:17.960 -i bandersnatch.mkv -ss 5 -t 48.76 2Gt1.mkv 2>/dev/null
ffmpeg -ss 03:12:06.720 -i bandersnatch.mkv -ss 5 -t 44.24 2Gp2.mkv 2>/dev/null
ffmpeg -ss 03:12:50.960 -i bandersnatch.mkv -ss 5 -t 44.24 2Gt2.mkv 2>/dev/null
ffmpeg -ss 03:13:35.200 -i bandersnatch.mkv -ss 5 -t 71.44 2G.mkv 2>/dev/null
ffmpeg -ss 03:14:46.640 -i bandersnatch.mkv -ss 5 -t 188.28 1S.mkv 2>/dev/null
ffmpeg -ss 03:17:54.920 -i bandersnatch.mkv -ss 5 -t 49.72 3AL1.mkv 2>/dev/null
ffmpeg -ss 03:18:44.640 -i bandersnatch.mkv -ss 5 -t 48.4 3AK1.mkv 2>/dev/null
ffmpeg -ss 03:19:33.040 -i bandersnatch.mkv -ss 5 -t 229.88 3AF2.mkv 2>/dev/null
ffmpeg -ss 03:23:22.920 -i bandersnatch.mkv -ss 5 -t 49.72 3AL2.mkv 2>/dev/null
ffmpeg -ss 03:24:12.640 -i bandersnatch.mkv -ss 5 -t 42.2 4D2.mkv 2>/dev/null
ffmpeg -ss 03:24:54.840 -i bandersnatch.mkv -ss 5 -t 235.4 3AF.mkv 2>/dev/null
ffmpeg -ss 03:28:50.240 -i bandersnatch.mkv -ss 5 -t 34.64 3Xac.mkv 2>/dev/null
ffmpeg -ss 03:29:24.880 -i bandersnatch.mkv -ss 5 -t 68.68 3VA.mkv 2>/dev/null
ffmpeg -ss 03:30:33.560 -i bandersnatch.mkv -ss 5 -t 30.52 3Xa.mkv 2>/dev/null
ffmpeg -ss 03:31:04.080 -i bandersnatch.mkv -ss 5 -t 54.2 ZQ.mkv 2>/dev/null
ffmpeg -ss 03:31:58.280 -i bandersnatch.mkv -ss 5 -t 118.48 3AD2.mkv 2>/dev/null
ffmpeg -ss 03:33:56.760 -i bandersnatch.mkv -ss 5 -t 56.56 ZG.mkv 2>/dev/null
ffmpeg -ss 03:34:53.320 -i bandersnatch.mkv -ss 5 -t 115.92 1HB.mkv 2>/dev/null
ffmpeg -ss 03:36:49.240 -i bandersnatch.mkv -ss 5 -t 31.96 8JB1.mkv 2>/dev/null
ffmpeg -ss 03:37:21.200 -i bandersnatch.mkv -ss 5 -t 31.96 8JB2.mkv 2>/dev/null
ffmpeg -ss 03:37:53.160 -i bandersnatch.mkv -ss 5 -t 147.24 5Mpc.mkv 2>/dev/null
ffmpeg -ss 03:40:20.400 -i bandersnatch.mkv -ss 5 -t 147.24 5Mtc.mkv 2>/dev/null
ffmpeg -ss 03:42:47.640 -i bandersnatch.mkv -ss 5 -t 157.16 5Mt.mkv 2>/dev/null
ffmpeg -ss 03:45:24.800 -i bandersnatch.mkv -ss 5 -t 49.96 5Q.mkv 2>/dev/null
ffmpeg -ss 03:46:14.760 -i bandersnatch.mkv -ss 5 -t 29.6 5U.mkv 2>/dev/null
ffmpeg -ss 03:46:44.360 -i bandersnatch.mkv -ss 5 -t 38.0 5R.mkv 2>/dev/null
ffmpeg -ss 03:47:22.360 -i bandersnatch.mkv -ss 5 -t 44.28 5RA.mkv 2>/dev/null
ffmpeg -ss 03:48:06.640 -i bandersnatch.mkv -ss 5 -t 27.68 5S.mkv 2>/dev/null
ffmpeg -ss 03:48:34.320 -i bandersnatch.mkv -ss 5 -t 41.08 5SA.mkv 2>/dev/null
ffmpeg -ss 03:49:15.400 -i bandersnatch.mkv -ss 5 -t 41.16 5TA.mkv 2>/dev/null
ffmpeg -ss 03:49:56.560 -i bandersnatch.mkv -ss 5 -t 79.16 5AG2.mkv 2>/dev/null
ffmpeg -ss 03:51:15.720 -i bandersnatch.mkv -ss 5 -t 47.8 5AH.mkv 2>/dev/null
ffmpeg -ss 03:52:03.520 -i bandersnatch.mkv -ss 5 -t 102.36 8M.mkv 2>/dev/null
ffmpeg -ss 03:53:45.880 -i bandersnatch.mkv -ss 5 -t 92.4 5AC.mkv 2>/dev/null
ffmpeg -ss 03:55:18.280 -i bandersnatch.mkv -ss 5 -t 94.08 8V.mkv 2>/dev/null
ffmpeg -ss 03:56:52.360 -i bandersnatch.mkv -ss 5 -t 50.44 5AC2.mkv 2>/dev/null
ffmpeg -ss 03:57:42.800 -i bandersnatch.mkv -ss 5 -t 94.08 8Va.mkv 2>/dev/null
ffmpeg -ss 03:59:16.880 -i bandersnatch.mkv -ss 5 -t 48.96 R2cd.mkv 2>/dev/null
ffmpeg -ss 04:00:05.840 -i bandersnatch.mkv -ss 5 -t 36.12 ZK3.mkv 2>/dev/null
ffmpeg -ss 04:00:41.960 -i bandersnatch.mkv -ss 5 -t 42.64 5AD2.mkv 2>/dev/null
ffmpeg -ss 04:01:24.600 -i bandersnatch.mkv -ss 5 -t 104.4 5AE.mkv 2>/dev/null
ffmpeg -ss 04:03:09.000 -i bandersnatch.mkv -ss 5 -t 102.4 8Qa.mkv 2>/dev/null
ffmpeg -ss 04:04:51.400 -i bandersnatch.mkv -ss 5 -t 109.16 5AG.mkv 2>/dev/null
ffmpeg -ss 04:06:40.560 -i bandersnatch.mkv -ss 5 -t 56.48 5AJ.mkv 2>/dev/null
ffmpeg -ss 04:07:37.040 -i bandersnatch.mkv -ss 5 -t 85.8 8S.mkv 2>/dev/null
ffmpeg -ss 04:09:02.840 -i bandersnatch.mkv -ss 5 -t 85.8 8Sa.mkv 2>/dev/null
ffmpeg -ss 04:10:28.640 -i bandersnatch.mkv -ss 5 -t 274.4 3P.mkv 2>/dev/null
ffmpeg -ss 04:15:03.040 -i bandersnatch.mkv -ss 5 -t 102.36 8Ma.mkv 2>/dev/null
ffmpeg -ss 04:16:45.400 -i bandersnatch.mkv -ss 5 -t 16.72 7J.mkv 2>/dev/null
ffmpeg -ss 04:17:02.120 -i bandersnatch.mkv -ss 5 -t 52.96 3T.mkv 2>/dev/null
ffmpeg -ss 04:17:55.080 -i bandersnatch.mkv -ss 5 -t 17.32 5G.mkv 2>/dev/null
ffmpeg -ss 04:18:12.400 -i bandersnatch.mkv -ss 5 -t 40.76 5T.mkv 2>/dev/null
ffmpeg -ss 04:18:53.160 -i bandersnatch.mkv -ss 5 -t 46.36 ZB.mkv 2>/dev/null
ffmpeg -ss 04:19:39.520 -i bandersnatch.mkv -ss 5 -t 48.36 Z1.mkv 2>/dev/null
ffmpeg -ss 04:20:27.880 -i bandersnatch.mkv -ss 5 -t 25.84 Z2.mkv 2>/dev/null
ffmpeg -ss 04:20:53.720 -i bandersnatch.mkv -ss 5 -t 26.32 Z3.mkv 2>/dev/null
ffmpeg -ss 04:21:20.040 -i bandersnatch.mkv -ss 5 -t 30.12 Z3cd.mkv 2>/dev/null
ffmpeg -ss 04:21:50.160 -i bandersnatch.mkv -ss 5 -t 37.64 Z4.mkv 2>/dev/null
ffmpeg -ss 04:22:27.800 -i bandersnatch.mkv -ss 5 -t 47.04 Z4cd.mkv 2>/dev/null
ffmpeg -ss 04:23:14.840 -i bandersnatch.mkv -ss 5 -t 59.12 ZD.mkv 2>/dev/null
ffmpeg -ss 04:24:13.960 -i bandersnatch.mkv -ss 5 -t 61.12 ZE.mkv 2>/dev/null
ffmpeg -ss 04:25:15.080 -i bandersnatch.mkv -ss 5 -t 31.64 SS1.mkv 2>/dev/null
ffmpeg -ss 04:25:46.720 -i bandersnatch.mkv -ss 5 -t 31.6 SS2.mkv 2>/dev/null
ffmpeg -ss 04:26:18.320 -i bandersnatch.mkv -ss 5 -t 32.88 R1.mkv 2>/dev/null
ffmpeg -ss 04:26:51.200 -i bandersnatch.mkv -ss 5 -t 31.6 SS3.mkv 2>/dev/null
ffmpeg -ss 04:27:22.800 -i bandersnatch.mkv -ss 5 -t 31.6 SS4.mkv 2>/dev/null
ffmpeg -ss 04:27:54.400 -i bandersnatch.mkv -ss 5 -t 31.6 SS5.mkv 2>/dev/null
ffmpeg -ss 04:28:26.000 -i bandersnatch.mkv -ss 5 -t 31.6 SS6.mkv 2>/dev/null
ffmpeg -ss 04:28:57.600 -i bandersnatch.mkv -ss 5 -t 30.16 R3.mkv 2>/dev/null
ffmpeg -ss 04:29:27.760 -i bandersnatch.mkv -ss 5 -t 31.6 SS7.mkv 2>/dev/null
ffmpeg -ss 04:29:59.360 -i bandersnatch.mkv -ss 5 -t 31.6 SS8.mkv 2>/dev/null
ffmpeg -ss 04:30:30.960 -i bandersnatch.mkv -ss 5 -t 31.6 SS9.mkv 2>/dev/null
ffmpeg -ss 04:31:02.560 -i bandersnatch.mkv -ss 5 -t 31.64 SS11.mkv 2>/dev/null
ffmpeg -ss 04:31:34.200 -i bandersnatch.mkv -ss 5 -t 31.68 SS12.mkv 2>/dev/null
ffmpeg -ss 04:32:05.880 -i bandersnatch.mkv -ss 5 -t 31.64 SS14.mkv 2>/dev/null
ffmpeg -ss 04:32:37.520 -i bandersnatch.mkv -ss 5 -t 30.84 3Xxc.mkv 2>/dev/null
ffmpeg -ss 04:33:08.360 -i bandersnatch.mkv -ss 5 -t 31.64 SS16.mkv 2>/dev/null
ffmpeg -ss 04:33:40.000 -i bandersnatch.mkv -ss 5 -t 31.64 SS18.mkv 2>/dev/null
ffmpeg -ss 04:34:11.640 -i bandersnatch.mkv -ss 5 -t 31.64 SS19.mkv 2>/dev/null
ffmpeg -ss 04:34:43.280 -i bandersnatch.mkv -ss 5 -t 34.56 R5.mkv 2>/dev/null
ffmpeg -ss 04:35:17.840 -i bandersnatch.mkv -ss 5 -t 31.6 SS21.mkv 2>/dev/null
ffmpeg -ss 04:35:49.440 -i bandersnatch.mkv -ss 5 -t 31.6 SS22.mkv 2>/dev/null
ffmpeg -ss 04:36:21.040 -i bandersnatch.mkv -ss 5 -t 31.6 SS50.mkv 2>/dev/null
ffmpeg -ss 04:36:52.640 -i bandersnatch.mkv -ss 5 -t 41.6 R3cd.mkv 2>/dev/null
ffmpeg -ss 04:37:34.240 -i bandersnatch.mkv -ss 5 -t 38.2 R4cd.mkv 2>/dev/null
ffmpeg -ss 04:38:12.440 -i bandersnatch.mkv -ss 5 -t 31.6 SS53.mkv 2>/dev/null
ffmpeg -ss 04:38:44.040 -i bandersnatch.mkv -ss 5 -t 31.6 SS54.mkv 2>/dev/null
ffmpeg -ss 04:39:15.640 -i bandersnatch.mkv -ss 5 -t 31.6 SS55.mkv 2>/dev/null
ffmpeg -ss 04:39:47.240 -i bandersnatch.mkv -ss 5 -t 47.0 R1cd.mkv 2>/dev/null
ffmpeg -ss 04:40:34.240 -i bandersnatch.mkv -ss 5 -t 60.56 S44B.mkv 2>/dev/null
ffmpeg -ss 04:41:34.800 -i bandersnatch.mkv -ss 5 -t 60.6 S34B.mkv 2>/dev/null
ffmpeg -ss 04:42:35.400 -i bandersnatch.mkv -ss 5 -t 60.56 S35B.mkv 2>/dev/null
ffmpeg -ss 04:43:35.960 -i bandersnatch.mkv -ss 5 -t 60.56 S59B.mkv 2>/dev/null
ffmpeg -ss 04:44:36.520 -i bandersnatch.mkv -ss 5 -t 60.56 S36B.mkv 2>/dev/null
ffmpeg -ss 04:45:37.080 -i bandersnatch.mkv -ss 5 -t 60.56 S37B.mkv 2>/dev/null
ffmpeg -ss 04:46:37.640 -i bandersnatch.mkv -ss 5 -t 60.56 S38B.mkv 2>/dev/null
ffmpeg -ss 04:47:38.200 -i bandersnatch.mkv -ss 5 -t 60.24 S38A.mkv 2>/dev/null
ffmpeg -ss 04:48:38.440 -i bandersnatch.mkv -ss 5 -t 60.24 S44A.mkv 2>/dev/null
ffmpeg -ss 04:49:38.680 -i bandersnatch.mkv -ss 5 -t 60.24 S34A.mkv 2>/dev/null
ffmpeg -ss 04:50:38.920 -i bandersnatch.mkv -ss 5 -t 60.24 S59A.mkv 2>/dev/null
ffmpeg -ss 04:51:39.160 -i bandersnatch.mkv -ss 5 -t 60.24 S35A.mkv 2>/dev/null
ffmpeg -ss 04:52:39.400 -i bandersnatch.mkv -ss 5 -t 60.24 S36A.mkv 2>/dev/null
ffmpeg -ss 04:53:39.640 -i bandersnatch.mkv -ss 5 -t 45.4 Z62a.mkv 2>/dev/null
ffmpeg -ss 04:54:25.040 -i bandersnatch.mkv -ss 5 -t 41.6 Z62b.mkv 2>/dev/null
ffmpeg -ss 04:55:06.640 -i bandersnatch.mkv -ss 5 -t 56.92 Z62c.mkv 2>/dev/null
ffmpeg -ss 04:56:03.560 -i bandersnatch.mkv -ss 5 -t 51.8 Z62d.mkv 2>/dev/null
ffmpeg -ss 04:56:55.360 -i bandersnatch.mkv -ss 5 -t 48.52 Z62e.mkv 2>/dev/null
ffmpeg -ss 04:57:43.880 -i bandersnatch.mkv -ss 5 -t 44.76 Z62f.mkv 2>/dev/null
ffmpeg -ss 04:58:28.640 -i bandersnatch.mkv -ss 5 -t 45.4 Z61a.mkv 2>/dev/null
ffmpeg -ss 04:59:14.040 -i bandersnatch.mkv -ss 5 -t 41.6 Z61b.mkv 2>/dev/null
ffmpeg -ss 04:59:55.640 -i bandersnatch.mkv -ss 5 -t 56.92 Z61c.mkv 2>/dev/null
ffmpeg -ss 05:00:52.560 -i bandersnatch.mkv -ss 5 -t 51.8 Z61d.mkv 2>/dev/null
ffmpeg -ss 05:01:44.360 -i bandersnatch.mkv -ss 5 -t 48.52 Z61e.mkv 2>/dev/null
ffmpeg -ss 05:02:32.880 -i bandersnatch.mkv -ss 5 -t 44.76 Z61f.mkv 2>/dev/null
ffmpeg -ss 05:03:17.640 -i bandersnatch.mkv -ss 5 -t 26.4 Z7a.mkv 2>/dev/null
ffmpeg -ss 05:03:44.040 -i bandersnatch.mkv -ss 5 -t 23.0 Z7b.mkv 2>/dev/null
ffmpeg -ss 05:04:07.040 -i bandersnatch.mkv -ss 5 -t 36.6 Z7d.mkv 2>/dev/null
ffmpeg -ss 05:04:43.640 -i bandersnatch.mkv -ss 5 -t 31.64 Z7e.mkv 2>/dev/null
ffmpeg -ss 05:05:15.280 -i bandersnatch.mkv -ss 5 -t 28.0 Z7f.mkv 2>/dev/null
ffmpeg -ss 05:05:43.280 -i bandersnatch.mkv -ss 5 -t 5.56 8KB.mkv 2>/dev/null
ffmpeg -ss 05:05:48.840 -i bandersnatch.mkv -ss 5 -t 5.24 8KA.mkv 2>/dev/null
ffmpeg -ss 05:05:54.080 -i bandersnatch.mkv -ss 5 -t 156.24 0cr3.mkv 2>/dev/null
ffmpeg -ss 05:08:30.320 -i bandersnatch.mkv -ss 5 -t 79.88 0Cr4.mkv 2>/dev/null
ffmpeg -ss 05:09:50.200 -i bandersnatch.mkv -ss 5 -t 51.04 0cr1.mkv 2>/dev/null
ffmpeg -ss 05:10:41.240 -i bandersnatch.mkv -ss 5 -t 78.04 0cr2.mkv 2>/dev/null
ffmpeg -ss 05:11:59.280 -i bandersnatch.mkv -ss 5 IDNT.mkv 2>/dev/null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment