bulk - entire MixerTwitch repo 2019-present

I should have done this a long time ago. Oh well, no time like the present!
This commit is contained in:
2026-05-17 14:33:23 -06:00
parent 410cb7284b
commit 42d7afb087
554 changed files with 12275 additions and 0 deletions
+365
View File
@@ -0,0 +1,365 @@
import csv
import xml.etree.ElementTree as ET
import os
import uuid # Import the uuid module
from lxml import etree # Import lxml for XML handling
from xml.dom import minidom
import msvcrt
# Function to convert timecode (HH:MM:SS:FF) to total frames based on the fps
def timecode_to_frames(timecode, fps=60):
"""Convert a timecode (HH:MM:SS:FF) to total frames based on the fps."""
try:
h, m, s, f = map(int, timecode.split(':')) # Split into hours, minutes, seconds, and frames
return (h * 3600 + m * 60 + s) * fps + f # Convert to frames
except ValueError:
print(f"Invalid timecode: {timecode}")
return 0 # Return 0 or handle error as appropriate
# Define marker colors
# pproColor keys:
# default/blank/invalid = Green
# "4281740498" # Red
# "4289825711" # Purple
# "4280578025" # Orange
# "4281049552" # Yellow
# "4294967295" # White
# "4294741314" # Blue
# "4292277273" # Turquoise
marker_colors = {
"FUNI": "4294741314", # Blue
"SEG": "4280578025", # Orange
"gamign": "4289825711", # Purple
"env": "4289825711", # Purple
"AFK": "4281049552", # Yellow
"UNAFK": "4281049552", # Yellow
"BEGIN": "4281049552", # Yellow
"END": "4281049552" # Yellow
}
# Get a list of all CSV files in the current directory
csv_files = [f for f in os.listdir('.') if f.endswith('.csv')]
for csv_file in csv_files:
print(f"Processing '{csv_file}'...")
# Extract base name for sequence name
video_base = os.path.splitext(csv_file)[0]
sequence_name = f"{video_base}"
# Function to generate the XML structure
def generate_xml(markers, duration, sequence_name):
# Create the root <xmeml> element
xmeml = ET.Element("xmeml", version="4")
# Create the <sequence> element
sequence = ET.SubElement(xmeml, "sequence", id="sequence")
# Manually add the attributes with dots
sequence.set("TL.SQAudioVisibleBase", "0")
sequence.set("TL.SQVideoVisibleBase", "0")
sequence.set("TL.SQVisibleBaseTime", "0")
sequence.set("TL.SQAVDividerPosition", "0.5")
sequence.set("TL.SQHideShyTracks", "0")
sequence.set("TL.SQHeaderWidth", "292")
sequence.set("Monitor.ProgramZoomOut", "0")
sequence.set("Monitor.ProgramZoomIn", "0")
sequence.set("TL.SQTimePerPixel", "0.19999999999999998")
sequence.set("MZ.EditLine", "0")
sequence.set("MZ.Sequence.PreviewFrameSizeHeight", "1080")
sequence.set("MZ.Sequence.PreviewFrameSizeWidth", "1920")
sequence.set("MZ.Sequence.AudioTimeDisplayFormat", "200")
sequence.set("MZ.Sequence.PreviewRenderingClassID", "1061109567")
sequence.set("MZ.Sequence.PreviewRenderingPresetCodec", "1634755439")
sequence.set("MZ.Sequence.PreviewRenderingPresetPath", "EncoderPresets/SequencePreview/795454d9-d3c2-429d-9474-923ab13b7018/QuickTime.epr")
sequence.set("MZ.Sequence.PreviewUseMaxRenderQuality", "false")
sequence.set("MZ.Sequence.PreviewUseMaxBitDepth", "false")
sequence.set("MZ.Sequence.EditingModeGUID", "795454d9-d3c2-429d-9474-923ab13b7018")
sequence.set("MZ.Sequence.VideoTimeDisplayFormat", "101")
sequence.set("MZ.WorkOutPoint", "4612930560000")
sequence.set("MZ.WorkInPoint", "0")
sequence.set("explodedTracks", "true")
# Generate a unique UUID and set it in the sequence element
uuid_val = str(uuid.uuid4()).replace('-', '') # Generate a unique UUID without dashes
ET.SubElement(sequence, "uuid").text = uuid_val
# Set the duration right after the UUID
duration_tag = ET.SubElement(sequence, "duration")
duration_tag.text = str(duration)
# Add rate (timebase and ntsc)
rate = ET.SubElement(sequence, "rate")
timebase = ET.SubElement(rate, "timebase")
timebase.text = "60"
ntsc = ET.SubElement(rate, "ntsc")
ntsc.text = "FALSE"
# Set sequence name
name = ET.SubElement(sequence, "name")
name.text = sequence_name
# Create media section
media = ET.SubElement(sequence, "media")
video = ET.SubElement(media, "video")
format_tag = ET.SubElement(video, "format")
samplecharacteristics = ET.SubElement(format_tag, "samplecharacteristics")
# Now let's add a rate and other information under samplecharacteristics (to make it meaningful)
rate = ET.SubElement(samplecharacteristics, "rate")
timebase = ET.SubElement(rate, "timebase")
timebase.text = "60"
ntsc = ET.SubElement(rate, "ntsc")
ntsc.text = "FALSE"
# Add codec information
codec = ET.SubElement(samplecharacteristics, "codec")
name = ET.SubElement(codec, "name")
name.text = "Apple ProRes 422"
appspecificdata = ET.SubElement(codec, "appspecificdata")
appname = ET.SubElement(appspecificdata, "appname")
appname.text = "Final Cut Pro"
appmanufacturer = ET.SubElement(appspecificdata, "appmanufacturer")
appmanufacturer.text = "Apple Inc."
appversion = ET.SubElement(appspecificdata, "appversion")
appversion.text = "7.0"
data = ET.SubElement(appspecificdata, "data")
qtcodec = ET.SubElement(data, "qtcodec")
codecname1 = ET.SubElement(qtcodec, "codecname")
codecname1.text = "Apple ProRes 422"
codectypename = ET.SubElement(qtcodec, "codectypename")
codectypename.text = "Apple ProRes 422"
codecname2 = ET.SubElement(qtcodec, "codecname")
codecname2.text = "Apple ProRes 422"
codectypecode = ET.SubElement(qtcodec, "codectypecode")
codectypecode.text = "apcn"
codecvendorcode = ET.SubElement(qtcodec, "codecvendorcode")
codecvendorcode.text = "appl"
spatialquality = ET.SubElement(qtcodec, "spatialquality")
spatialquality.text = "1024"
temporalquality = ET.SubElement(qtcodec, "temporalquality")
temporalquality.text = "0"
keyframerate = ET.SubElement(qtcodec, "keyframerate")
keyframerate.text = "0"
datarate = ET.SubElement(qtcodec, "datarate")
datarate.text = "0"
# Add dimension info
width = ET.SubElement(samplecharacteristics, "width")
width.text = "1920"
height = ET.SubElement(samplecharacteristics, "height")
height.text = "1080"
anamorphic = ET.SubElement(samplecharacteristics, "anamorphic")
anamorphic.text = "FALSE"
pixelaspectratio = ET.SubElement(samplecharacteristics, "pixelaspectratio")
pixelaspectratio.text = "square"
fielddominance = ET.SubElement(samplecharacteristics, "fielddominance")
fielddominance.text = "none"
colordepth = ET.SubElement(samplecharacteristics, "colordepth")
colordepth.text = "24"
# Create the <track> element
track = ET.SubElement(video, "track")
track.set("TL.SQTrackShy", "0")
track.set("TL.SQTrackExpandedHeight", "25")
track.set("TL.SQTrackExpanded", "0")
track.set("MZ.TrackTargeted", "0")
#Add track modifiers
enabled = ET.SubElement(track, "enabled")
enabled.text = "TRUE"
locked = ET.SubElement(track, "locked")
locked.text = "FALSE"
# Add generator item (matte)
generatoritem = ET.SubElement(track, "generatoritem", id="clipitem-1")
item_name = ET.SubElement(generatoritem, "name")
item_name.text = f"Marker Color Matte ({markers[0]['time']})"
enabled = ET.SubElement(generatoritem, "enabled")
enabled.text = "TRUE"
generatoritem_duration = ET.SubElement(generatoritem, "duration")
generatoritem_duration.text = str(duration)
rate = ET.SubElement(generatoritem, "rate")
timebase = ET.SubElement(rate, "timebase")
timebase.text = "60"
ntsc = ET.SubElement(rate, "ntsc")
ntsc.text = "FALSE"
start = ET.SubElement(generatoritem, "start")
start.text = "0"
end = ET.SubElement(generatoritem, "end")
end.text = str(duration)
in_time = ET.SubElement(generatoritem, "in")
in_time.text = "0"
out_time = ET.SubElement(generatoritem, "out")
out_time.text = str(duration)
alphatype = ET.SubElement(generatoritem, "alphatype")
alphatype.text = "none"
effect = ET.SubElement(generatoritem, "effect")
effect_name = ET.SubElement(effect, "name")
effect_name.text = "Color"
effectid = ET.SubElement(effect, "effectid")
effectid.text = "Color"
effectcategory = ET.SubElement(effect, "effectcategory")
effectcategory.text = "Matte"
effecttype = ET.SubElement(effect, "effecttype")
effecttype.text = "generator"
mediatype = ET.SubElement(effect, "mediatype")
mediatype.text = "video"
parameter = ET.SubElement(effect, "parameter", authoringApp="PremierePro")
parameterid = ET.SubElement(parameter, "parameterid")
parameterid.text = "fillcolor"
param_name = ET.SubElement(parameter, "name")
param_name.text = "Color"
value = ET.SubElement(parameter, "value")
alpha = ET.SubElement(value, "alpha")
alpha.text = "0"
red = ET.SubElement(value, "red")
red.text = "0"
green = ET.SubElement(value, "green")
green.text = "0"
blue = ET.SubElement(value, "blue")
blue.text = "0"
filter_tag = ET.SubElement(generatoritem, "filter")
filter_effect = ET.SubElement(filter_tag, "effect")
filter_effect_name = ET.SubElement(filter_effect, "name")
filter_effect_name.text = "Opacity"
filter_effectid = ET.SubElement(filter_effect, "effectid")
filter_effectid.text = "opacity"
filter_effectcategory = ET.SubElement(filter_effect, "effectcategory")
filter_effectcategory.text = "motion"
filter_effecttype = ET.SubElement(filter_effect, "effecttype")
filter_effecttype.text = "motion"
filter_mediatype = ET.SubElement(filter_effect, "mediatype")
filter_mediatype.text = "video"
pproBypass = ET.SubElement(filter_effect, "pproBypass")
pproBypass.text = "false"
filter_parameter = ET.SubElement(filter_effect, "parameter", authoringApp="PremierePro")
filter_parameterid = ET.SubElement(filter_parameter, "parameterid")
filter_parameterid.text = "opacity"
filter_param_name = ET.SubElement(filter_parameter, "name")
filter_param_name.text = "opacity"
filter_valuemin = ET.SubElement(filter_parameter, "valuemin")
filter_valuemin.text = "0"
filter_valuemax = ET.SubElement(filter_parameter, "valuemax")
filter_valuemax.text = "100"
filter_value = ET.SubElement(filter_parameter, "value")
filter_value.text = "0"
# Create the <audio> element and its children
audio = ET.SubElement(media, "audio")
ET.SubElement(audio, "numOutputChannels").text = "2"
format_elem = ET.SubElement(audio, "format")
samplecharacteristics = ET.SubElement(format_elem, "samplecharacteristics")
ET.SubElement(samplecharacteristics, "depth").text = "16"
ET.SubElement(samplecharacteristics, "samplerate").text = "48000"
outputs = ET.SubElement(audio, "outputs")
for i in range(1, 3):
group = ET.SubElement(outputs, "groups")
ET.SubElement(group, "index").text = str(i)
ET.SubElement(group, "numchannels").text = "1"
ET.SubElement(group, "downmix").text = "0"
channel = ET.SubElement(group, "channel")
ET.SubElement(channel, "index").text = str(i)
for i in range(1, 9):
track = ET.SubElement(audio, "track")
track.set("TL.SQTrackAudioKeyframeStyle", "0")
track.set("TL.SQTrackShy", "0")
track.set("TL.SQTrackExpandedHeight", "25")
track.set("TL.SQTrackExpanded", "0")
track.set("MZ.TrackTargeted", "1")
track.set("PannerCurrentValue", "0.5")
track.set("PannerIsInverted", "true")
track.set("PannerStartKeyframe", "-91445760000000000,0.5,0,0,0,0,0,0")
track.set("PannerName", "Balance")
track.set("currentExplodedTrackIndex", "0")
track.set("totalExplodedTrackCount", "2")
track.set("premiereTrackType", "Stereo")
ET.SubElement(track, "enabled").text = "TRUE"
ET.SubElement(track, "locked").text = "FALSE"
ET.SubElement(track, "outputchannelindex").text = str((i-1) % 2 + 1)
# Create the timecode section under sequence
timecode = ET.SubElement(sequence, "timecode")
rate = ET.SubElement(timecode, "rate")
ET.SubElement(rate, "timebase").text = "60"
ET.SubElement(rate, "ntsc").text = "FALSE"
ET.SubElement(timecode, "string").text = "00:00:00:00"
ET.SubElement(timecode, "frame").text = "0"
ET.SubElement(timecode, "displayformat").text = "NDF"
# Create the labels section under sequence
labels = ET.SubElement(sequence, "labels")
ET.SubElement(labels, "label2").text = "Iris"
# Create the logginginfo section under sequence
logginginfo = ET.SubElement(sequence, "logginginfo")
ET.SubElement(logginginfo, "description")
ET.SubElement(logginginfo, "scene")
ET.SubElement(logginginfo, "shottake")
ET.SubElement(logginginfo, "lognote")
ET.SubElement(logginginfo, "good")
ET.SubElement(logginginfo, "originalvideofilename")
ET.SubElement(logginginfo, "originalaudiofilename")
# Add markers again but under sequence
for marker in markers:
marker_element = ET.SubElement(sequence, "marker")
ET.SubElement(marker_element, "comment")
ET.SubElement(marker_element, "name").text = marker['name']
# Set the in and out time as the frame count
in_frame = str(timecode_to_frames(marker['time']))
ET.SubElement(marker_element, "in").text = in_frame
ET.SubElement(marker_element, "out").text = "-1"
# Set color based on marker name
color_code = marker_colors.get(marker['name'])
if color_code:
ppro_color = ET.SubElement(marker_element, "pproColor")
ppro_color.text = color_code
print(f"Set color for marker '{marker['name']}' to '{color_code}'")
else:
print(f"Default color (Green) used for marker '{marker['name']}'")
# Create the labels section under sequence
labels = ET.SubElement(sequence, "labels")
ET.SubElement(labels, "label2").text = "Forest"
# Write to XML file
output_file = csv_file.replace('.csv', '.xml')
tree = ET.ElementTree(xmeml)
tree.write(output_file, encoding="UTF-8", xml_declaration=True)
print(f"XML file '{output_file}' has been created successfully.")
# Read the CSV file and process the data
markers = [] # List to store markers
with open(csv_file, newline='', encoding='utf-8') as csvfile:
csv_reader = csv.DictReader(csvfile, delimiter='\t')
marker_count = 0
for row in csv_reader:
marker_name = row['Marker Name']
in_point = row['In']
out_point = row['Out']
print(f"Adding marker: Name='{marker_name}', In='{in_point}', Out='{out_point}'")
# Add marker to list
markers.append({'name': marker_name, 'time': in_point})
marker_count += 1
print(f"Total markers added for '{csv_file}': {marker_count}")
# Calculate the duration using the final marker's timecode
final_marker = markers[-1] if markers else None
duration = 0
if final_marker:
duration = timecode_to_frames(final_marker['time'], fps=60)
generate_xml(markers, duration, sequence_name) # Pass sequence_name
print("------------------------------------------------------------")
print("All files have been processed.")
print("Press any key to exit...")
msvcrt.getch()
+1
View File
@@ -0,0 +1 @@
{"FileInfo":{"Version":{"Major":1,"Minor":4,"Patch":0},"CreatedAt":"2026-01-04T00:09:26.9715737-07:00","UpdatedAt":"0001-01-01T00:00:00"},"streamer":{"name":"RaincloudTheDragon","login":"raincloudthedragon","id":121308181},"clipper":null,"video":{"title":"waste.ts","description":null,"id":"2658831715","created_at":"2026-01-02T02:06:42Z","start":0,"end":161,"length":161,"viewCount":0,"game":"Five Nights at Freddy's: Security Breach","chapters":[{"id":"","startMilliseconds":0,"lengthMilliseconds":161000,"type":"GAME_CHANGE","description":"Five Nights at Freddy's: Security Breach","subDescription":"","thumbnailUrl":null,"gameId":"2143096682","gameDisplayName":"Five Nights at Freddy's: Security Breach","gameBoxArtUrl":"https://static-cdn.jtvnw.net/ttv-boxart/2143096682_IGDB-40x53.jpg"}]},"comments":[],"embeddedData":{"thirdParty":[],"firstParty":[],"twitchBadges":[],"twitchBits":[]}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+59
View File
@@ -0,0 +1,59 @@
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 9.0-c001 152.deb9585, 2024/02/06-08:36:10 " rdfhash="77196DCC325049200598B2F8EB94F892" merged="0">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmpMM:InstanceID="xmp.iid:d6bcf948-734b-e341-a54e-1a1d94d6c59c"
xmpMM:DocumentID="245f421d-4f65-979f-489d-152000000061"
xmpMM:OriginalDocumentID="xmp.did:8ee3017e-d5b0-e545-a3a9-e3847a47d8f8"
xmp:MetadataDate="2026-05-17T14:10:54-06:00"
xmp:ModifyDate="2026-05-17T13:43:07-06:00">
<xmpMM:History>
<rdf:Seq>
<rdf:li
stEvt:action="saved"
stEvt:instanceID="07bd793e-5bb9-5864-3fd0-44a70000008e"
stEvt:when="2026-05-17T13:43:07-06:00"
stEvt:softwareAgent="Adobe Premiere Pro 2024.0 (Windows)"
stEvt:changed="/"/>
<rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:d64ecc94-a7b6-684f-84e4-fb43bbc4b289"
stEvt:when="2026-05-17T13:49:44-06:00"
stEvt:softwareAgent="Adobe Premiere Pro 2024.0 (Windows)"
stEvt:changed="/metadata/xmpDM/Tracks"/>
<rdf:li
stEvt:action="saved"
stEvt:instanceID="xmp.iid:d6bcf948-734b-e341-a54e-1a1d94d6c59c"
stEvt:when="2026-05-17T14:10:54-06:00"
stEvt:softwareAgent="Adobe Premiere Pro 2024.0 (Windows)"
stEvt:changed="/metadata/xmpDM/Tracks"/>
</rdf:Seq>
</xmpMM:History>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
+26
View File
@@ -0,0 +1,26 @@
2026-01-01
https://linktr.ee/RaincloudTheDragon
0:00 setup + rambling
2:37 non-technical difficulties
7:03 figuring out where to go
11:08 kitchen arrival
14:05 chickenmasher.exe
28:11 kitchens escaped
35:19 voiceboxing
39:00 roxy sequence break
51:48 roxy pass research
1:01:04 figuring it out on my own
1:12:18 mazercising
1:22:24 montying
1:49:23 freddy arms
1:58:04 getting head
2:22:40 fazcade
2:36:30 deleting saves
2:37:51 exploring
2:44:12 woof woof
2:48:41 sneaking past shatrox
2:50:07 exploring
2:53:48 freddy eyes
2:57:31 getting to 6am
3:01:00 goodbye.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
2026-01-03
https://linktr.ee/RaincloudTheDragon
MOTD by @Gaogomon https://x.com/Gaogomon
0:00 starting soon
2:00 setup + rambling
3:21 game laggy
6:04 verifying files
12:10 exploring CCR pizzaplex
37:22 wet floor bot quest
1:13:34 troubleshooting moderation
1:16:14 chapter 1
1:35:26 tiktok + other stream issues
1:42:28 back to the quest
1:46:03 chapter 2
1:48:19 uetools nonsense
1:51:36 cont chapter 2
2:12:28 brb
2:14:08 checking twitch and uetools
2:16:02 water
2:16:53 cont chapter 2
2:48:53 chapter 3
3:13:18 chapter 4
3:39:12 chapter 5
4:03:28 blender showcase
4:05:52 postramble
4:09:54 subjective moral relativism
4:15:23 goodbye?
4:16:39 some additional philosophical exchange
4:20:22 goodbye.
Binary file not shown.
Binary file not shown.
+21
View File
@@ -0,0 +1,21 @@
2026-01-08
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
2:01 setup + rambling
4:48 trying to play previous profile
26:28 game integrity verification
28:55 water adrun
30:22 scan done
31:56 try in vain to salvage profile 2
1:14:11 starting over @ chapter 1
1:34:42 chapter 2
1:46:19 chapter 3
2:03:46 chapter 4
2:15:22 brb
2:18:16 chapter 5
2:25:55 brb
2:27:40 chapter 6
2:38:06 chapter 7
2:54:03 postramble
2:54:50 goodbye
Binary file not shown.
Binary file not shown.
+18
View File
@@ -0,0 +1,18 @@
2026-01-10
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
4:37 preramble
6:27 dating standards calculator
26:38 CCR exploring some rooms in the disassemble vanny ending
32:36 secret of the mimic
2:21:49 brb
2:28:36 tape time
2:37:43 strange CPU usage
2:42:12 elevator repairman
2:46:22 getting watner
2:47:47 return to elevation
2:59:46 taking call
3:00:12 tickets please
3:11:12 postramble
3:11:50 goodbye
Binary file not shown.
Binary file not shown.
+28
View File
@@ -0,0 +1,28 @@
2026-01-15
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
3:40 setup + rambling
7:50 tickets please
33:39 fleeing the ticketman
54:54 backstage
1:11:55 workshops
1:20:39 finding code
1:21:18 explore staff area
1:24:23 collecting captain bits
1:43:01 brb
1:44:33 is meaning prescriptive or descriptive?
1:46:47 becoming captain
2:37:07 rebooting game
2:38:02 pirate cutscene again
2:43:48 nurse
3:12:36 getting water
3:15:24 on the morality of truth and lies
3:16:41 recycling
3:23:23 melted nurse
3:51:39 reentering storage
3:57:17 exploring + collectibles
4:03:48 chica in the warehouse
4:33:14 loading bay
4:58:12 postramble
5:12:45 goodbye
Binary file not shown.
Binary file not shown.
+37
View File
@@ -0,0 +1,37 @@
2026-01-17
https://linktr.ee/RaincloudTheDragon
0:00 setup + rambling
2:09 singing we are charlie kirk
6:09 recovering
7:56 modular parade puzzle
29:23 collectibles and minigames
1:03:04 admin wing
1:39:30 secret surveillance passage
1:42:30 data transfer intermission
1:45:02 brb
1:47:38 back to the basement
1:48:56 forgot water
1:49:25 Fundaphobia section
2:06:05 basement escaped
2:09:52 entering the catacombs
2:17:59 R&D
2:47:04 brb
2:48:24 researching objective
2:53:32 back to R&D
3:08:21 inventor's house
3:54:16 final chase
4:04:01 bsod brb
4:06:04 rebooting and nuking exclusive fullscreen
4:15:23 NGplus
4:24:23 storage
4:38:08 south hall
4:42:38 jackie
4:50:38 fixing elevator
4:56:18 research misinput
4:57:57 back to fixing elevator
5:03:03 exploring jackie backroom
5:12:41 entering big top showroom
5:14:23 checking acheivements
5:16:43 postramble
5:17:32 goodbye
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,33 @@
2026-01-22
https://linktr.ee/RaincloudTheDragon
0:00 preramble
2:06 checking achievements
6:04 big top
6:55 secret backdoor
32:33 trying to stow collectible
45:38 finally back to big top
1:02:29 escaping big top
1:10:53 collectathoning
1:28:28 theatre
2:00:18 nurse dolly
2:18:56 utterly derailed by trapaholics
2:27:12 finally getting back to the elevator sequence
2:30:34 back to storage, collectathoning
2:55:25 warehouse
3:11:10 loading bay
3:26:41 admin wing
3:39:46 looking for a save point
3:56:56 fiddling with achievements
3:57:57 return to admin wing, death
4:02:55 kill game
4:03:24 getting back
4:07:53 finally, admin wing
4:21:35 admin wing done
4:29:20 white tiger basement
4:39:18 looking for storytime showroom
4:47:21 storytime showroom
4:52:59 moon basement
5:23:05 MOON.EXE
6:16:13 postramble
6:18:57 goodbye
Binary file not shown.
Binary file not shown.
+33
View File
@@ -0,0 +1,33 @@
2026-01-24
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
0:13 eating food + rambling
4:58 xitter
7:55 rambling
23:53 research
32:32 retail showroom
40:36 trying to return to basement 2 via admin wing
1:03:04 clocking out
1:07:04 parachute
1:10:04 RnD
1:24:35 mansion
1:26:47 more research
1:27:58 glitching permissions
1:58:14 putting david to bed
2:08:45 THIRD PLAYTHROUGH cuz ONE audio log
2:13:00 storage
2:19:00 jackie
2:27:15 elevator
2:31:15 storytime showroom
2:46:33 big top
2:57:12 big top chase
3:01:13 theatre
3:25:48 nurse dolly
3:49:28 warehouse
4:00:28 admin wing
4:03:58 basement 2
4:07:02 research
4:14:54 seeking secret basement room
4:30:13 checking achievements
4:31:11 goodbye
Binary file not shown.
Binary file not shown.
+15
View File
@@ -0,0 +1,15 @@
2026-01-29
https://linktr.ee/RaincloudTheDragon
0:00 briefest preramble
0:50 SOTM audio and mail log hunt
35:39 achievements get
45:54 fnafsb saving bonnie
1:19:26 safe spot ending
1:28:36 scooper ending
2:21:56 collectathon
3:47:52 checking character gallery
3:53:23 back to collecting
4:11:54 chapter 8 collecting
4:29:30 all collectibles acquired
4:32:47 goodbye
Binary file not shown.
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
2026-01-31
https://linktr.ee/RaincloudTheDragon
0:00 preramble
2:41 sinner's road
14:18 recieved map and not bench
1:43:07 simple key
1:49:03 wormways
2:43:14 wormways map
2:46:29 overthinking riddle
2:51:54 back to unexplored moss grotto
3:20:00 postramble
3:21:51 goodbye
Binary file not shown.
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
2026-02-05
https://linktr.ee/RaincloudTheDragon
0:00 setup + rambling
5:40 dogwalk
53:25 welcome to the game ii
2:09:49 start over
2:53:10 checking achievements and reviews
2:57:13 postramble
2:58:26 goodbye
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,16 @@
2026-02-07
https://linktr.ee/RaincloudTheDragon
0:00 setup + rambling
3:42 opening
12:27 messing with graphics
16:16 entering the park
1:09:51 hydraulic press and plushie stuffing tangent
1:11:41 funhouse
1:41:43 chapter 2 trailer
1:43:13 to pharloom
1:45:50 brb
1:48:02 smelling brimstone
1:49:30 blasted steps
3:15:47 postramble
3:16:27 goodbye
Binary file not shown.
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
2026-02-12
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
1:29 setup + rambling
5:02 retrieving salvage and supplies
35:57 the last judge
1:28:02 brb getting water
1:28:58 pouring gamer supps
1:33:55 continuing the last judge
2:18:26 the citadel
2:26:04 underworks
2:34:59 discrod
2:35:56 underworking
2:39:04 benching
2:40:28 underworkign harder
3:24:01 choral chambers
3:51:15 postramble
3:51:42 goodbye
Binary file not shown.
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
2026-02-19
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
4:50 preramble, or the lack thereof
9:55 menu
11:23 choral chambers
31:37 finding clip
33:03 hunting jacuzzi
49:04 brb
50:22 rambling, eating flower
55:02 wandering
1:05:00 dragon gone, host makeout sesh
1:06:28 stringing up rosaries
1:13:25 exploring bilewater
1:34:12 discovering bench
1:39:47 bench unshackled
1:49:54 consuming bile
2:20:29 mapping
2:23:06 traversing the mist
3:19:37 postramble
3:22:33 goodbye
Binary file not shown.
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
2026-02-21
https://linktr.ee/RaincloudTheDragon
0:00 preramble
1:09 the mist
24:25 mist traversed, phantom time
1:00:52 exploring citadel
1:43:30 getting gamer supps
1:44:58 clockwork dancers
1:50:29 brief interruption + gamer supping
1:52:56 cogwork dancers
1:55:52 exploration
2:19:04 whiteward
2:32:25 underworks
2:51:28 citadel
3:27:18 brief intermission
3:28:33 jabbering
3:29:38 actually fighting the clockwork dancers
5:13:25 researching clawline
5:14:27 looking into the underworks
5:23:43 consulting resources
5:24:49 more searching
5:29:41 postramble
Binary file not shown.
Binary file not shown.
+21
View File
@@ -0,0 +1,21 @@
2026-02-26
https://linktr.ee/RaincloudTheDragon
0:00 starting soon (technical difficulties)
12:06 preramble
13:55 consulting map
20:45 unexpected visit
22:10 return
22:50 obtaining clawline
39:14 obtained clawline
1:16:47 pollip hearts
1:37:51 new bellhart quests
1:55:38 exploring sands of karak
2:33:01 grinding
2:55:48 quests
3:31:44 exploring greymoor clawline
3:45:00 bellhart
3:49:28 philosophizing
3:52:33 twitter
3:58:21 postramble
3:59:43 goodbye
Binary file not shown.
Binary file not shown.
+20
View File
@@ -0,0 +1,20 @@
2026-02-28
https://linktr.ee/RaincloudTheDragon
0:00 preramble
4:59 fixing game overexposure
7:04 routing
8:07 meat delivery
48:07 whiteward wish
1:11:16 researching pale oil
1:13:58 savage beastfly wish
1:42:26 fixing heat
1:44:52 beastfly mode
2:08:43 philosophy
2:13:29 returning to wishwall
2:21:11 broodmother wish
3:23:01 wishwalls
3:30:09 postramble
3:30:54 twitter
3:32:42 council of creatures
3:40:07 goodbye
Binary file not shown.
Binary file not shown.
+21
View File
@@ -0,0 +1,21 @@
2026-03-05
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
2:56 banecloud
9:41 azure chess 1v1
56:55 setting up game
1:02:52 iron lung banecloud
1:58:33 intermission
2:03:00 mask off
2:11:23 actual iron lung gaming
2:14:13 adjusting audio
2:14:48 cruising the blood ocean
2:55:04 looking up achievements
2:55:45 FeLung with cheats
3:28:41 more achievement research
3:29:19 ach hunt
3:36:05 research
3:36:35 hunting the SM-8
3:57:57 creature council
4:10:11 goodbye
Binary file not shown.
Binary file not shown.
+17
View File
@@ -0,0 +1,17 @@
2026-03-07
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
0:13 setup + rambling
2:32 FeLung achievemnt hunt
29:23 research + gameswap
35:29 silksong
49:47 attempt to run errand, explore greymoor
1:17:53 exploring deep docks, fighting forebrothers
1:50:26 forebrothers defeated
2:03:04 moar bone bottom supplies, getting more plasmium
2:16:20 citadel supply run
2:30:05 research
2:30:38 citadel supply run cont
2:51:41 postramble
2:52:08 goodbye
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,27 @@
2026-03-12
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
0:25 eating food, corralling critters
12:01 setup
14:08 case animatronics
35:46 setting up borderless gaming
38:56 borderless police station
55:23 FUNI naked normals
56:40 blender/3d normals tangent
1:06:57 getting banned by dikcok
1:12:36 police station
2:22:27 brb
2:23:53 conversing with cretins
2:28:45 walkthrough
2:31:18 animatronics
3:10:15 brb water
3:11:02 cretin conversations
3:12:43 respawn
3:18:39 discord
3:19:50 charging tablet
3:47:37 letterboxd tangent
3:49:23 surviving without ventilation
4:23:21 creature convention
4:26:49 morality scaling + trolley problem
4:51:30 goodbye
Binary file not shown.
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
2026-03-14
https://linktr.ee/RaincloudTheDragon
0:00 starting soon
3:30 tangy southern chicken
17:07 CASE
50:01 brb watertime
51:41 police
1:20:23 abandoning CASE
1:23:27 choosing game
1:31:47 risking rain
2:10:31 power nap
2:11:06 goodbye

Some files were not shown because too many files have changed in this diff Show More