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