0x48piraj / fadblock

Friendly Adblock for YouTube: A fast, lightweight, and undetectable YouTube Ads Blocker for Chrome, Opera and Firefox.
2.42k stars 109 forks source link

Does not work, even with "Newest version" #114

Closed HastyRhombus760 closed 11 months ago

HastyRhombus760 commented 11 months ago

Title says it all. I use Opera and this "blocker" does nothing at all.

ItsTepsu commented 11 months ago

Make sure you have Opera/OperaGX's ad blocker disabled, as well as any other extensions that might cause the ad blocker to not work.

My best suggestion is to disable everything except fadblock and see if anything is causing problems. I use OperaGX and it works perfectly fine (Version 2.5)

Toxella commented 11 months ago

Another opera user here, same thing started happening to me a few days ago. All extensions disabled except the latest FadBlocker version, still receiving youtube ads.

ItsTepsu commented 11 months ago

Another opera user here, same thing started happening to me a few days ago. All extensions disabled except the latest FadBlocker version, still receiving youtube ads.

I'd try and help further, but I'm not associated with the developer, and I don't know enough about how it works either. Best thing I can suggest is to make sure opera is up to date, and try reinstalling the extension.

Rynn21 commented 11 months ago

On Firefox, only fadblock running, and ads come right through now. Fadblock also horribly slows down browsers.

zolexander commented 11 months ago

Firefox: in the Firefox Store still the 2.2 Version is online. It works unfortunately not so well, the MutationObserver slows down the browser. The 2.5 Version(the last) works without any problem, and I did'nt have any ads -since I installed it). It takes some time, until globally everybody gets the new version. Sometimes Chrome Store faster, last time the Firefox Store was faster.

ItsTepsu commented 11 months ago

Firefox: in the Firefox Store still the 2.2 Version is online. It works unfortunately not so well, the MutationObserver slows down the browser. The 2.5 Version(the last) works without any problem, and I did'nt have any ads -since I installed it). It takes some time, until globally everybody gets the new version. Sometimes Chrome Store faster, last time the Firefox Store was faster.

Make sure the update isn't available. It might need to be manually installed.

For the opera users, check to make sure you don't need to update it manually. If that doesn't work try uninstalling the extension and reinstalling it.

0x48piraj commented 11 months ago

Thank you @zolexander for helping out.

Firefox Store hasn't published the extension since 11th Nov. The dev team isn't responding as well.

image

FadBlock over Firefox faced quite a storm of trolls with name-calling, reports, and everything in between. Looks like they're facing the consequences now.

As for Opera users, please look into disabling the inbuilt adblocker that the browser uses, it's in the FAQ.

MrDrDevil commented 11 months ago

chrome user here starts receiving YouTube ads, from this morning uninstalled & reinstalled still facing the same issue 15/11/23 23

Grg76 commented 11 months ago

Firefox Store hasn't published the extension since 11th Nov. The dev team isn't responding as well.

Now it's published for Firefox too

0x48piraj commented 11 months ago

@MrDrDevil, can you put chrome://extensions onto the address bar and send the screenshot?

MrDrDevil commented 11 months ago

here you go btw why? Screenshot (940)

zolexander commented 11 months ago

This version of the fadblock is old. The newest one is the 2.5 which available in the store: Uninstall the 1.3 Version and install this:. https://chromewebstore.google.com/detail/fadblock-friendly-adblock/mdadjjfmjhfcibgfhfjbaiiljpllkbfc?utm_source=ext_app_menu The Adguard Adblocker: you might should add youtube.com to whilelist, and after this, should work.

MrDrDevil commented 11 months ago

oh ok ...i will do it right now...and let you the result

thank you

Revemohl commented 11 months ago

I just got a mid-roll ad while watching a livestream after having updated to 2.5, using Firefox. I guess it's still not 100%.

eliezercazares commented 11 months ago

Make sure you have Opera/OperaGX's ad blocker disabled, as well as any other extensions that might cause the ad blocker to not work.

My best suggestion is to disable everything except fadblock and see if anything is causing problems. I use OperaGX and it works perfectly fine (Version 2.5)

Could it be that youtube is obfuscating the CSS/HTML Locators for the Ads? I created a Feature Request explaining a possible way around this, at least temporarily.

zolexander commented 11 months ago

It's not obfuscating. What they do, the source code of the page suddenly changes. They began to use JavaScript based style changes: even adding empty "display:none" elements. There is in the page an iframe from src= "about:blank", which don't make any sense. The entire YouTube source code became very complicated. It better, then obfuscation. Not everybody has the same site. They can locally generate other YouTube pages experiment which is the best against Adblockers.

eliezercazares commented 11 months ago

It's not obfuscating. What they do, the source code of the page suddenly changes. They began to use JavaScript based style changes: even adding empty "display:none" elements. There is in the page an iframe from src= "about:blank", which don't make any sense. The entire YouTube source code became very complicated. It better, then obfuscation. Not everybody has the same site. They can locally generate other YouTube pages experiment which is the best againsat Adblockers.

We need to act maybe at OS level, by identifying ad servers we can act directly on the video player at OS level to FF ?

Also, isn't this extension acting directly on the HTML5 attributes for video players? So, we just need to get rid of dependencies in the HTML and act directly on the player, by targetting ads a different way.

The extension currently checks for some CSS attributes to exist, or attribute values... those may be changing based on your answer.

Maybe we can do something like videoPlayer.src == AdServers.List.ForEach() { videoPlayer.duration: .1 }

(it's pseudo code XD )..

zolexander commented 11 months ago

There is a little bit problem with the concept: the ad itself is on the youtube.com The video element: src attribute is some blob with src="blob:https://youtube.com/{some_guid}

I think this solution of @0x48piraj is good enough.

eliezercazares commented 11 months ago

There is a little bit problem with the concept: the ad itself is on the youtube.com The video element: src attribute is some blob with src="blob:https://youtube.com/{some_guid}

I think this solution of @0x48piraj is good enough.

I have v1.3 on FF and it's not working since a few days ago, 1 or 2.

Did you check the code? He literally checks for the existance of CSS classes. I will do my testing and let you know, I just have to look for that CSS he looks for when an ad is shown.

zolexander commented 11 months ago

Yes, I read the code, even of the last version. Its not difficult. Only try to find where is the video element and with some css classes, decides when to an ad escape.

eliezercazares commented 11 months ago

There is a little bit problem with the concept: the ad itself is on the youtube.com The video element: src attribute is some blob with src="blob:https://youtube.com/{some_guid}

I think this solution of @0x48piraj is good enough.

Yeah but it seems you have problems following that the extension is not working... But... Ok, I did my testing looking for the css values while an ad is shown and in my case, all the CSS elements were found, however it's not skipping...

 const isAd = videoContainer?.classList.contains("ad-interrupting") || videoContainer?.classList.contains("ad-showing");
      const skipLock = document.querySelector(".ytp-ad-preview-text")?.innerText;
      const surveyLock = document.querySelector(".ytp-ad-survey")?.length > 0;

      if (isAd && skipLock) {
        const videoPlayer = document.getElementsByClassName("video-stream")[0];
        videoPlayer.muted = true; // videoPlayer.volume = 0;
        videoPlayer.currentTime = videoPlayer.duration - 0.1;
        videoPlayer.paused && videoPlayer.play()
        // CLICK ON THE SKIP AD BTN
        document.querySelector(".ytp-ad-skip-button")?.click();
        document.querySelector(".ytp-ad-skip-button-modern")?.click();
      } else if (isAd && surveyLock) {
        // CLICK ON THE SKIP SURVEY BTN
        document.querySelector(".ytp-ad-skip-button")?.click();
        document.querySelector(".ytp-ad-skip-button-modern")?.click();
      }

Now I am wondering if we need .volume instead, and concerned a bit that maybe .duration attribue was disabled... but in this case the author could use another value instead of videoPlayer.duration as he is doing:

        videoPlayer.muted = true; // videoPlayer.volume = 0;
        videoPlayer.currentTime = videoPlayer.duration - 0.1;

It could be:

        videoPlayer.muted = true; // videoPlayer.volume = 0;
        videoPlayer.currentTime = document.querySelector(".ytp-ad-preview-text")?.innerText

I am leaving those comments mostly for the author. But if you have something to contribute I will be glad to look at your code or test results.

zolexander commented 11 months ago

It's not better for you to download the 2.5 Version? It's available from the store. He found the solution, even he commented about this. I don't want to open his solution, because this became half "open-source" project, but I am sure about this. In the Mozilla/Chrome Store, there is the source code of the last extension.

eliezercazares commented 11 months ago

It's not better for you to download the 2.5 Version? It's available from the store. He found the solution, even he commented about this. I don't want to open his solution, because this became half "open-source" project, but I am sure about this. In the Mozilla/Chrome Store, there is the source code of the last extension.

bruh, it was me. my bad.

I just downloaded 2.5 and it works XD

I was desperate.

thanks again!

francogrex commented 11 months ago

This version of the fadblock is old. The newest one is the 2.5 which available in the store: Uninstall the 1.3 Version and install this:. https://chromewebstore.google.com/detail/fadblock-friendly-adblock/mdadjjfmjhfcibgfhfjbaiiljpllkbfc?utm_source=ext_app_menu The Adguard Adblocker: you might should add youtube.com to whilelist, and after this, should work.

This is a shame. Why would one keep an "obsolete" version as the newest on his github release?

0x48piraj commented 11 months ago

@MrDrDevil, I asked because most people are not reading the FAQ and stacking adblockers onto adblockers. Just like what you were doing, and that makes the problem difficult. If YouTube finds a way to detect ABP or uBlock which they did a week ago, blocked user accounts, users will confuse that with FadBlock, same with the black screen issue, it only happens with the traditional adblockers, not FadBlock.

@francogrex, read the announcement, as the codebase grew and YouTube started implementing complicated techniques as DOM manipulation as @zolexander promptly discussed, it was better they can't readily see the CSS elements I look for and change them frequently causing more work as well as the reasons I discussed in the announcement.