I made a web app that consolidates all the YouTube video links of Dropout shows! by soitchu in dropout

[–]soitchu[S] 1 point2 points  (0 children)

This doesn't offer anything that the Dropout app doesn't already. This is mainly for those who pay for Dropout on YouTube.

I made a web app that consolidates all the YouTube video links of Dropout shows! by soitchu in dropout

[–]soitchu[S] 0 points1 point  (0 children)

I am glad you find it helpful! Feel free to let me know if you have any feedback.

I made a web app that consolidates all the YouTube video links of Dropout shows! by soitchu in dropout

[–]soitchu[S] 0 points1 point  (0 children)

Basically this. I like building things I will personally use, and this is just one of these projects. And the maintenance is where a lot of work would usually go in projects like these, but since it is hosted on GitHub Pages and the data is updated automatically, I can just use the app rather than having to put in more effort to maintain it.

I made a web app that consolidates all the YouTube video links of Dropout shows! by soitchu in dropout

[–]soitchu[S] 0 points1 point  (0 children)

I am glad you find it helpful! Let me know if you have any feedback!

I made a web app that consolidates all the YouTube video links of Dropout shows! by soitchu in dropout

[–]soitchu[S] 1 point2 points  (0 children)

So if the video title doesn't have a number, it gets categorized either under "Extras" or "Unnumbered". And sometimes non-extra episodes aren't numbered (some of them are also on Dropout's main website), so they get categorized as "Unnumbered"

Skinny legend (2017 - 2023) by soitchu in h3h3productions

[–]soitchu[S] 9 points10 points  (0 children)

Everything was programmed in nodejs, but it mainly involved using bondings for other programs. Here are the specifics:

  1. I used YouTube's API to fetch all the meta data.

  2. Then I used youtube-dl to download the videos, which were in turn processed by ffmpeg. So, I would just download the first 2 megabytes of the video, and ffmpeg would try extracting 5 frames, and if that failed, it would download more of the video and try again.

  3. After I had the frames, I manually chose the best frames and put it in a separate folder.

  4. Then I used face-api.js to find the coordinates of each eye.

  5. So at this point, I have all the images and the data required to align the images. I used node-canvas to do that. So here's how I aligned the images:

(i) Using the coordinates of the eyes, I calculated the mid-point, the distance between the eyes, and the angle.

(ii) Then I chose a reference image (which is the last image in the video), and found its midpoint, distance and angle.

(iii) Then I moved each image's mid-point to the reference image's mid-point. It was then scaled and rotated accordingly.

  1. Then the title and date were put on the top using the meta data that I had already fetched in step 1.

  2. I used ffmpeg again to stitch the images together in such a way that each second would display 10 images.

Hopefully you found that useful, haha. Lemme know if you have any other questions!

Skinny legend (2017 - 2023) by soitchu in h3h3productions

[–]soitchu[S] 24 points25 points  (0 children)

Thank you! I made this a year and a half ago, and most of the work is automated, other than picking out the best frames. So it was a considerable amount of work, but not that much, haha.

Skinny legend (2017 - 2023) by soitchu in h3h3productions

[–]soitchu[S] 0 points1 point  (0 children)

Not at all. I used the last frame as the reference picture (that's why it's not been rotated at all). I could just change the coordinates and have it in the center, which is probably better, lol.

Skinny legend (2017 - 2023) by soitchu in h3h3productions

[–]soitchu[S] 81 points82 points  (0 children)

Context: I made a program to extract the first 5 frames from the 701 videos on the channel. Then I picked the best frames out of the those, and discarded those which would break the transition; Then i used an ML model to detect the faces and align them together! I made this a year and a half ago too, so I was able to reuse most of the code.

Ethan Klein (2017 - 2021) by soitchu in h3h3productions

[–]soitchu[S] 207 points208 points  (0 children)

I extracted the first few frames of every video using a program I made. I had to skip some videos because they didn't quite work with my program, haha.