You are browsing as a guest. Sign up (or log in) to start making projects!

AndyNoob

@AndyNoob

Joined June 10th, 2026

  • 28Devlogs
  • 3Projects
  • 2Ships
  • 30Votes
This is going to be my last time participating in a Hack Club event. Unfortunately, I will officially achieve unc status in October (19yo). So, I plan to make the best of this event. And hopefully get an iPad or Mac Mini.

Most recently, I have been grinding the Liminal Industries Acension modpack ("s" missing intentionally, for some reason). I have also been grinding Japanese on Duolingo. So, my days are generally pretty full.

That's not all though, I've been crafting a little extension for my newfound anime obsession: Crunchyroll Multi Sub. I had to reverse engineer the API and website of Crunchyroll (don't tell them that though), but it turned out to be pretty worth it! I took a break for a while, but now I am adding a few new features (and get some hours here hahaha).
Open comments for this post

6h 32m 17s logged

RAHHHHHH RECODE (v1.0.0)
-
Turns out when you keep adding features on the fly into an existing system, things start going haywire because the system was not designed to have those features.
-
Anyways, after spending like 3 hours trying to fix those haywires, I decided to just do what I should’ve done: rewrite the damn thing. Well, turns out, it wasn’t even that much of a rewrite since all I had to change was like three files…

0
0
1
Open comments for this post

7h 5m 10s logged

Worked on a bunch of stuff, mostly random issues: extension broken on Opera, extension randomly not updating subtitles, features of extension randomly bricking if you do a specific set of stuff (like adding and deleting masks really fast).
-
Other than that, I added a new subtitle style editor. I thought it was gonna be a 30min quick change. And then it ended up being like 4 hours long. The font selector is so damn annoying to add because there’s really only one way to do it, and that’s through Google. And of course it’s going to be a pain in the rear when it’s Google.
-
Whatever, at least it looks good.

0
0
2
Open comments for this post

1h 50m 1s logged

YOOO new feature! autoSize option keeps elements anchored at their center when their sizes change. Took a minute but we got here, ha!

0
0
4
Open comments for this post

3h 11m 34s logged

Fixed a bunnnnnch of issues as an aftermath of the last devlog… Took a minute but I finally released 0.12.0 (and immediately realized there’s more bugs.

Also cleaned up the README and made it look real fancy.

0
0
2
Open comments for this post

7h 16m 18s logged

Ok, it’s been a minute, so let me go over the changes. (also i finally figured out you need to shift + enter to do new line bruh)

Firstly, in preparation for the subtitle masking feature, I changed the extension popup to be a side bar/panel instead. This way, you can keep it open while you interact with the page.

Secondly, I swapped the old “Reset subtitle position” button (which didn’t even work LMAO) with the new “Edit subtitle configuration” button. When you click it, a new section expands.

This is where my other project (move-it) plays in! (see video). When you add a mask, it will block out subtitles using the CSS clip-path property, which is pretty neat!

I also fixed a bunch of random issues along the way, so yay!

0
0
5
Open comments for this post

21m 43s logged

Guide line snapping can now follow resizing! Code lowk getting a little messy, but it’s still borderline acceptable haha. Now on version 0.3.0 :)

0
0
2
Open comments for this post

37m 26s logged

Added a auto resize feature! Not much to say but it took surprisingly little effort to implement. I thought I would’ve had to re-code half the codebase :parrotintensifies:

0
0
1
Open comments for this post

6h 28m 48s logged

Forgot to post devlogs ngl… Anyways, I fixed a bunch of weird bugs and compatibility issues with other extensions and userscripts. And then, I spent a few hours restyling the scoped options menu. Look at it moveee- Anyways, the moving part is made with a see through ::after element that is moved using the CSS transform: translateX element. I am able to move it programmatically by changing a CSS property/variable that translateX reads from. And then, I slapped a fancy transition on there. Works like a charm! (I had considered doing slide effect on the actual options, but that seemed like too much work haha.)

0
0
3
Ship Pending review

Well, it has been a fun 10 hours of reverse engineering Crunchyroll, but the extension/userscript is (probably) ready!

I supposed the most annoying part is figuring out how to reliably inject code onto the page. Afterwards, it was the matter of changing the offset on the raw audio data.

If you want to try this out, it's available on Chrome and as a userscript for Tampermonkey 🥳. Otherwise, GIF and screenshots are available.

  • 7 devlogs
  • 10h
Try project → See source code →
Open comments for this post

1h 49m 5s logged

Alrighty! The audio offset application is actually instant now! Unfortunately, I had to enlist some help from Claude to get the CMAF media data parsing/editing to get it to work :. But, it works like a charm now. Yay. Essentially, now the extension stores the buffered audio, and when offset changes, directly edits the time offset value in the cloned raw audio data (which is in the CMAF format), clears the old buffer, and then adds our cloned version. This also means I have to rewrite the README and re-record the DEMO 🫠. (also, the Jetbrains README editor is lowk goated)

0
0
2
Open comments for this post

26m logged

Made the icon and added some build scripts to automatically export as PNG from the source photoshop file (which I made with Photopea). Took a minute to refine it. It looks a bit weird zoomed out and being so pixelated, but you can tell it’s my extension at least

0
0
2
Open comments for this post

1h 14m logged

Ok. Dug into Crunchyroll’s code a bit more and maybe found a way to apply the offset faster instead of waiting for the previous buffers to run out. The video doesn’t really make it clear (recording freezes because DRM protection), but the audio updated when the timeline jumped. The delay was about a few seconds. Gonna go test tis on Chrome now 🙏.

0
0
4
Open comments for this post

1h 2m 4s logged

Managed to style this thing. Actually works pretty well! I wanted to get rid of those ugly up/down arrows, but it’s really annoying to get rid of for some reason… Whatever. Probably will upload this both as an extension and as a Tampermonkey user script.

0
0
4
Open comments for this post

1h 27m 14s logged

First devlog! In the past 4 hours or so (poking the website doesn’t count towards Hackatime unfortunately), I managed to monkey patch Crunchyroll’s web packed audio buffering code. After that, I figured out how to force the video player to error out so that it reloads itself. So, the main functionality of the helper extension is done (I think)! Other than that, I managed to inject a little button into the video player :). Credits to Google Material Icons. Gonna go make this button work now… yay.

0
0
5
Ship

# MOVE IT!
A library that adds simple PowerPoint like DOM object manipulation: resize, drag, and rotate. Pretty lightweight and comes with (very beautifully) styled controls. This library also provides the means for you to calculate collision via an implementation of oriented bounding boxes.

# Links
The more detailed details can be found on the README: https://github.com/AndyNoob/move-it
You can find a simple demo here: https://andynoob.github.io/move-it/

# Annoying issues I ran into on the way
It's pretty much just CSS. It's always CSS. When it is not CSS. I have so much beef with the `transform` property.

For starters, it took me 5 hours to put the transform controls around the target element. And THEN some to get it pixel perfect. Not to mention how RESIZING IS SUCH A PAIN because changing the width and height adjusts the pivot point of the target element.

At the very least, I didn't have to worry about writing unit tests all that much for this project (AI is very good at it).

# Other stuff
I think the most fun part of this project is writing the function that handles overlapping rectangles' collision resolution. The whole process reminded me of Arcade haha.

Check it out if you're interested/in need of letting users transform objects in DOM.

  • 8 devlogs
  • 19h
  • 17.21x multiplier
  • 323 Stardust
Try project → See source code →
Loading more…

Followers

Loading…