
Mega Client
This is a self-hostable client app that uses MEGAcmd to leverage your server's infrastructure to handle file transfers for self hosted clients such as Plex or Immich. I went super overkill with it because I wanted to explore some cool tech.
The main reason I built this is because I host a media library for clips my friends and I make while playing video games. The flow is that people will upload a video into my mega dropbox, then they get auto transferred into a public library, then I use this application to download them.
Second main use case for me is download TV shows (that I own 😶) to my plex server so I can play them on the TV in my house without needing to stream it from my laptop.

The other thing I needed to be able to do was to to rename and delete files that I downloaded. Plex, for example, requires files to be in a very specific structure in order to properly datamine the metadata for whatever file you're hosting. However, very often TV shows have filenames that aren't in an optimal for Plex.




I also went very overkill and implemented a bunch of features that this kinda project does not need. For example, I built a cmdk search bar, added shortcut chords (like "G+t" to navigate to transfers), implemented all of the API using ts-rest and RTK query, etc.
Really the goal for this project was to mess around and get some deep knowledge about some of the tools I was using at my job so I could be more effective.

Anyways, you can take a look at the code if you'd like. If this is something that would be useful to you, feel free to pull it from the GitHub Container Registry, the tag is wuguishifu/mega-client.