Youtube black preview windows for all videos

Description of the issue:

As soon as I enable in Brave all trackers and advertising all preview windows for the videos are black. I can not see any video. This is happeing only if I log into my youtube account. If I log out from youtube it looks like in the first screenshot

How can this issue be reproduced?

  1. If I allow all trackers and advertising everything is fine. I can see youtube videos.
  2. If I disable trackers and advertising again, the youtube page is black. I just can see some titel.
  3. If I click at a (black) video it looks like in the third screenshot
  4. I already have tried to delete all browser cache and a reboot of the PC, but it does not help.

Brave Version( check About Brave):
Version 1.68.134 Chromium: 127.0.6533.88 (Offizieller Build) (64-Bit)
](https://brave.com/latest/)


@Andreas_HGW,
Can you please tell me what OS you’re using when you see this behavior?

Additionally, does it make any difference if you choose Aggressively block trackers & ads vs just selecting Block trackers & ads?

image

Try to press CTRL + SHIFT + R then it should relowd.
Would like to have an auto option for CTRL + SHIFT * R on Youtube.

The OS is Windows 11 64 Bit.
And there is no difference choosing Aggressively block trackers & ads or just selecting Block trackers & ads ?

CTRL + SHIFT + R does not help

OK I am using Windows 10, for me this works.

Regarding YT ads; @Andreas_HGW @Ufdring

many thanks. Using this filter works for me.

www.youtube.com##+js(trusted-rpnt, script, (function serverContract(), (()=>{let e="";document.addEventListener("DOMContentLoaded"\,(function(){if(!window.yt?.config_?.EXPERIMENT_FLAGS?.html5_enable_ssap_entity_id)return;const t=()=>{const t=document.getElementById("movie_player");if(!t)return;const n=t.querySelector("video");if(!n)return;const o=t.getVideoStats()?.ssap;if(n.duration&&o&&o.includes("vid.nvd")){const i=parseInt(o.split("st.").at(-1).split(";")[0])/1e3;let r=[];for(const e of o.matchAll(/\bcpn\.([-\w]+)/g))r.push(e[1]);const s=r.join("\,");(!1===n.loop&&e!==s&&n.currentTime<i||!0===n.loop&&n.currentTime<i||.001===n.currentTime&&n.currentTime<i)&&(t.seekTo(i)\,e=s)}};t();new MutationObserver((()=>{t()})).observe(document\,{childList:!0\,subtree:!0})}))})();(function serverContract(), sedCount, 1)
www.youtube.com##+js(nano-stb, [native code], 17000, 0.001)

I have tried this code one day before and it does not worked for me

www.youtube.com##+js(set-trusted-types)
www.youtube.com##+js(trusted-rpnt, script, (function() {window.ytplayer=, /*start*/(()=>{let t=document.location.href\,e=[]\,n=[]\,o=!1\,r="";const i=Array.prototype.push\,a={apply:(t\,r\,a)=>(window.yt?.config_?.EXPERIMENT_FLAGS?.html5_enable_ssap_entity_id&&a[0]&&a[0]!==window&&"number"==typeof a[0].start&&a[0].end&&"ssap"===a[0].namespace&&a[0].id&&(o||0!==a[0]?.start||n.includes(a[0].id)||(e.length=0\,n.length=0\,o=!0\,i.call(e\,a[0])\,i.call(n\,a[0].id))\,o&&0!==a[0]?.start&&!n.includes(a[0].id)&&(i.call(e\,a[0])\,i.call(n\,a[0].id)))\,Reflect.apply(t\,r\,a))};window.Array.prototype.push=new Proxy(window.Array.prototype.push\,a)\,document.addEventListener("DOMContentLoaded"\,(function(){if(!window.yt?.config_?.EXPERIMENT_FLAGS?.html5_enable_ssap_entity_id)return;const i=()=>{const t=document.querySelector("video");if(t&&e.length){const i=Math.round(t.duration)\,a=Math.round(e.at(-1).end/1e3)\,c=n.join("\,");if(!1===t.loop&&r!==c&&i&&i===a){const n=e.at(-1).start/1e3;t.currentTime<n&&(t.currentTime=n\,o=!1\,r=c)}else if(!0===t.loop&&i&&i===a){const n=e.at(-1).start/1e3;t.currentTime<n&&(t.currentTime=n\,o=!1\,r=c)}}};i();new MutationObserver((()=>{t!==document.location.href?(t=document.location.href\,e.length=0\,n.length=0\,o=!1\,i()):i()})).observe(document\,{childList:!0\,subtree:!0})}))})();if(window.trustedTypes){const escapeHTMLPolicy=trustedTypes.createPolicy("myEscapePolicy"\,{createScript:string=>string.replace(/\/\*start\*\/(.*)\/\*end\*\//g\,"")});document.currentScript.textContent=escapeHTMLPolicy.createScript(document.currentScript.textContent);}else{document.currentScript.textContent=document.currentScript.textContent.replace(/\/\*start\*\/(.*)\/\*end\*\//g\,"");}/*end*/(function() {window.ytplayer=, sedCount, 1)

Custom rules won’t be needed, included in Brave shields by default. @Andreas_HGW

Bit late, but posting in case you wanted some feedback. Overall, I have no complaints with the most recent ruleset you posted (although anything was preferable over triple YT ads playing back to back to back)

Changed to the new ruleset you posted.
Visible changes:
Black screen previews (prev rules) > FIXED
Small delay/yellow ad bar appearing before video plays > FIXED

Current issues/problems with YT: NONE

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.