lent9004

@[email protected]

This profile is from a federated server and may be incomplete. View on remote instance

lent9004 OP ,

If Pinchflat works well for you now, I would stick with it. The FreshRSS approach would be that it's a lot less resource heavy and barely require any storage space. Because of this, you can serve multiple people with thousands of subscriptions.

lent9004 OP ,

Glad to hear that! For the "Watch later" part, the way Youlag approaches it is to turn "Favorites" into a "Watch/read it later" page. The approach is slightly different, but achieves the same thing.

lent9004 OP ,

That's odd, and you made sure that video mode for "All pages and categories " is unchecked?

If you're not on the latest version of FreshRSS, perhaps try updating? During development and testing, I've always stayed with the latest version.

lent9004 OP ,

Thanks for letting me know, I'd love to get this working for as many people as possible, so please let me know if you got any leads.

lent9004 OP ,

It depends on your needs, as with most things. I chose FreshRSS as it allowed me to customize it, to turn it into a YouTube subscription feed. Before I created Youlag, I was using FreshRSS' official YouTube plugin for this purpose.

I did stumble upon Miniflux while deciding on a RSS reader, but never considered it as it didn't include thumbnails in the feed view.

lent9004 OP ,

I don't use Grayjay myself, but I tried it a long time ago, so this what I recall.

Grayjay uses a web scraper to feed the stream into its own video player, which lets them add features such as timestamp, SponsorBlock, and background playback.

Youlag is less sophisticated as it's solely a client‑side approach that embeds the official YouTube player. If you however add your own Invidious instance via the Youlag settings, you can play it through Invidious instead.

With Youlag in FreshRSS, everything runs in the browser, so there’s no device syncing needed. That also means it even works on iOS devices, and essentially anything that can run a modern browser.

lent9004 OP , (edited )

If you’re thinking of SponsorBlock, Youlag doesn’t support that feature. In this recent comment, I’ve shared why that is the case.

For traditional adblocking, I would suggest using uBlock Origin, which is also available on Android for firefox-based browsers.

Edit:
To clarify, there are no adblocking features built-in to Youlag.

lent9004 OP ,

Just to double check, is the Youlag extension enabled in "Settings -> Extensions"?

The view you described sounds like what FreshRSS would look like if Youlag isn't enabled.

lent9004 OP , (edited )

Youlag doesn't come with the core FreshRSS, it's an extension you need to manually install. You can follow the install instructions here to learn how to install Youlag. It's the same method that you use to install any other third-party extension for FreshRSS.

Once installed, the extensions page should look like this:
https://lemmy.world/pictrs/image/62544847-c04b-41e5-b6f0-7ddbdf0a64f3.png

lent9004 OP ,

Yes, it's all JavaScript and essentially relies on the Canvas API to compress the images, so the performance is heavily dependent of your device and browser. I haven't delved into WASM yet, but it would indeed open up doors for improvements, such a more file format support and more intelligent optimization. At the moment, working with canvas keeps things a lot more straightforward, however.

There is no funding I can provide at all (I've received 2 donations so far, which I'm very grateful for!). I just do this on my spare time, which I have a lot less of these days. I initially created MAZANOKE as a drop-in replacement for family and friends, specifically to those who tend to use questionable or ad-bloated online tools.

lent9004 OP ,

Correct! This all works in the browser offline. As outlined in the install instructions, you can simply download the project files and just launch index.html. The docker setup is if you want to be able to access the service on local network or share it publicly.

lent9004 OP ,

The unofficial unraid template was graciouslly provided by ctrlaltd1337ed, but I appreciate the sentiment.

About the name, It is an amalgamation of two words, I'll leave the rest to your imagination!

lent9004 OP ,

For this project, I think I'll keep it to just images, but if I tackle a project with videos, it would be separate from MAZANOKE.

lent9004 OP , (edited )

To preface a bit. I occasionally run my images through Sharp over CLI, and I am also a daily user of the Caesium desktop app. However, I haven't explored the details of how Caesium is implemented.

The biggest difference is that MAZANOKE targets a different user group, essentilly those who would use online tools over installing applications, which is something you see more of these days. I wanted my family and friends to have a safe drop-in replacement for those shady websites. For those who want to use a "native app", installing MAZANOKE as a PWA is also a great option.

In terms of core functionality, they are very similar and support the same output image formats. But at the end of the day, MAZANOKE is privacy-focused too, and have plans to add a simple image editor for obfuscation, cropping, and related features. You can also access MAZANOKE anywhere, whether it is self-hosted or on the official instance.

Fundamentally, MAZANOKE relies heavily on the device, and the browser's Canvas API. This means that the speed and quality could slightly differ depending on which device/browser you use. I believe Caesium's performance would be more consistent.

(I didn't know where to put this, but my favorite feature is being able to paste to compress an image right away using MAZANOKE.)

Edit: typo

lent9004 OP ,

Thanks for your kind words, I tried putting some effort into making the interface a bit more fun and interactive, so thanks for noticing!

In regards to Rust, I've been interested in learning more about it, but I've not had time yet, so it's been in a "soon (tm)" limbo. As I'm comfortable with JavaScript/JS frameworks, sticking with JS was a quick way to get started without much friction.

lent9004 OP ,

I think jogai_san put out some great points. On top of this, you can still install MAZANOKE as a PWA, so you "essentially" get a native application experience.

lent9004 OP ,

That's still very interesting to hear, maybe I'll look into it for my next (simpler) project just to try it out.

lent9004 OP ,

If I understand it correctly, the heic image does get read and compressed. However, it's the last part when clicking the download button that it instead displays the image as a jpeg (on a new tab)?

lent9004 OP ,

Based off the things you mentioned, especially the "little quirk", there something in the pipeline that fails. The file name extension is intended to show regardless of which output format that is selected.

Are you perhaps using a privacy-focused browser like Librewolf (opposed to vanilla Firefox)? Or do you have any extension that might be used for anti-fingerprinting? MAZANOKE need to be able to access the browser's canvas feature in order to convert images, and some browsers are blocking this feature to prevent fingerprinting.

Also, have you tested MAZANOKE on a different browser to see if it works there?

If the issue still persist, would you mind sending me a screenshot of the browser console log, in order for me to see where it fails. This will hopefully provide some hints.

Additionally, while I don't have a Windows environment readily available, I've tested MAZANOKE on Ubuntu and macOS using both firefox and chromium, but I wasn't able to reproduce it. Will test on Windows when I find the chance to.

lent9004 OP ,

Thanks a bunch from sharing your result! Based on the fact that ICO works, and I didn't see any real issues in the logs, it could be the "Post-processing..." part where something goes wrong (I didn't add any more detailed logs for that part unfortunately).

Will get back once I've setup a basic Windows development environment and made some tests!

lent9004 OP ,

If I understand it correctly, then yes, that's the case! I've utitlized several libraries such as "Browser Image Compression", "heic-to", and more, to wrap it in a web interface.

lent9004 OP ,

Currently, only SVG to PNG is supported. SVGOMG is a great tool I’ve used many times as a user, but since it runs as a Node.js app, it would require server-side processing, unlike the local browser-based approach of this app.

lent9004 OP ,

The conversion option "Default" is meant to retain the file format when possible, but you can actively select the other options like jpg or webp if that fits your use case better.

lent9004 OP ,

EXIF data is removed by default, at the moment, there's no way to keep those data. I personally see that more as a feature than a bug though. The primary reason why there is no option to keep EXIF data is to maintain feature parity across different image formats.

lent9004 OP ,

If you get around to it, I'd love to know about it and add that as a feature.

lent9004 OP ,

I'm glad to hear it's being used frequently! I've heard a similar, but not exactly the same use case, so I recommend submitting a feature request on GitHub. That way, I can review it later to assess if the feature could be included when I plan ahead for new releases.

lent9004 OP ,

As a Lemmy user myself, I totally get the sentiment. GitHub isn’t ideal, and I had also considered Codeberg in the past (not for this project, but way back for others). Unfortunately, the simple reason is that the community is already on there, which makes getting contributions and engagement much easier. Managing and tracking issues across two platforms would be quite (mentally) taxing, which is on top of the effort already going into developing the app.

lent9004 OP ,

That's a valid question! The app is intended for less tech-savvy people, as such, the terminologies used are to accommodate those users. "Upload" would rather be "Import", while "Download" would be "Export".

I've shared the use case in a previous Lemmy post:

This app is designed to compress smaller batches of images, aimed at casual users who need to compress and convert a few images at a time.

I created it primarily for friends and family who are less tech-savvy, to help them compress and convert images in a simple, safe, and private way.

lent9004 OP ,

Haha, very interesting scenario, glad it worked out well!

lent9004 OP , (edited )

Even though this squoosh instance seems to be selfhosted, it has Google Analytics tracking (since Google made this app). MAZANOKE does not include any tracking nor require any internet connection at all if you install it as a PWA.

Edit: Looked at the source code of the fork, and it is applying the same tracking ID (to the big G). As squoosh is apache2 licensed, from my understanding, they should be able to simply remove that off the fork?

lent9004 OP ,

Oh wow, thank you for taking the time creating the feature requests/issues. I just finishing replying to them.

I'll give the workflow another think and see if it fits within the project as a whole.

lent9004 OP ,

This has analytics tracking and is made by Google though. I intentionally wanted to stray away from that.

Edit: typo

lent9004 OP ,

Probably could be used with betterdiscord that supports js plugins.

lent9004 OP ,

Ah I see, I'm still on webcord to be honest (not for any particular specific reason).

lent9004 OP , (edited )

I believe what you might be referring to was reported here:
https://github.com/civilblur/youlag/issues/2

The workaround was to enable the User JS extension first, and then the User CSS. This order requirement will be fixed in the next update, and the README has been updated.


If the page looks like it is constantly loading, you can open up the inspect mode on your browser, then add the CSS class youlag-loaded to the body element. This will allow you to manually exit out of the loading state.

Please note that there is nothing in the Youlag extension that can or will inherently corrupt your FreshRSS instance, so all your data is safe.

Edit 2025-02-23:
Please use the latest release, which is v3.0.4 as of writing.

lent9004 OP ,

I suggest using the extension "YouTubeChannel2RssFeed", with this, you don't have to manually convert the youtube channel links to RSS feed links.

With YouTubeChannel2RssFeed installed, you can simply use the url: https://www.youtube.com/@somechannel and it will add it as https://www.youtube.com/feeds/videos.xml?channel_id={id_goes_here}.

Edit: Link to extension

lent9004 OP ,

Since I don't use a TV myself, I have not looked into this scenario unfortunately.

lent9004 OP , (edited )

Sorry about that, I've included the fix in the latest release, and instructions on how to bypass the loading screen in the release notes:

https://github.com/civilblur/youlag/releases/tag/v3.0.4

Here in an excerpt from the release note:

In case FreshRSS got stuck in a loading state with the v3.0.2 release:

You can manually bypass the loading state by opening the inspect mode on your browser. Within the "Elements" tab, locate the body element and add the CSS class youlag-loaded.

Example:

  • From <body class="normal">
  • To <body class="normal youlag-loaded">.

The adjustment above will exit the loading state, allowing you to interact with the content and access the extension page.

For your convenience, below is the url path to the "User CSS" extension page:

https://yourFreshrssDomain.com/i/?c=extension&a=configure&e=User%2BCSS

Head to this page and replace the old CSS with the one provided in this release.

Edit: Fixed typo on CSS class name

lent9004 OP ,

At the moment, I haven't integrate Youlag with FreshRSS as a full fledge extension, but once that is in place, it would be possible to store user preferences. While it requires time and effort, I believe it shouldn't be too hard to implment this feature.