Owain
07/31/2023, 3:42 PMhuwred
07/31/2023, 4:01 PMOwain
07/31/2023, 4:06 PMMatt Wise
07/31/2023, 5:58 PMSebastiaan
07/31/2023, 6:28 PMAnders Bjerner
07/31/2023, 9:44 PMOwain
08/01/2023, 7:40 AMAnders Bjerner
08/01/2023, 10:52 AMOwain
08/01/2023, 11:12 AMEmbeddedMedia.config<!-- YouTube No Cookies Settings-->
    <provider name="YouTubeNoCookies" type="Umbraco.Web.Media.EmbedProviders.YouTubeNoCookiesEmbed, umbraco">
        <urlShemeRegex><![CDATA[https:\/\/www\.youtube-nocookie\.com\/embed\/([a-zA-Z0-9-_]+)]]></urlShemeRegex>
    </provider>namespace Our.Umbraco.Media.EmbedProviders
{
    public class YouTubeNoCookiesEmbed : AbstractProvider
    {
        public override bool SupportsDimensions
        {
            get { return false; }
        }
        public override string GetMarkup(string url, int maxWidth, int maxHeight)
        {
            // format of markup
            string videoFormat = "<div class=\"iplayer-container\">" +
                "<iframe src=\"//https:///www.youtube-nocookie.com/embed={0}\">" +
                "</iframe>" +
                "</div>";
            // pass in encoded Url, with and height, and turn off autoplay...
            var videoPlayerMarkup = string.Format(videoFormat, HttpUtility.UrlEncode(url) + "&autoplay=false", maxWidth, maxHeight);
            return videoPlayerMarkup;
        }
    }
}Owain
08/01/2023, 11:13 AMOwain
08/01/2023, 11:14 AMOEmbedVideoSebastiaan
08/01/2023, 11:34 AMtype="Umbraco.Web.Media.EmbedProviders.YouTubeNoCookiesEmbed, umbraco"Our.Umbraco.Media.EmbedProvidersumbraco.dlltype="Our.Umbraco.Media.EmbedProviders, MyProjectLib.dll"Owain
08/01/2023, 12:52 PMSebastiaan
08/01/2023, 1:14 PMembed\/embed=Sebastiaan
08/01/2023, 1:15 PM"<iframe src=\"//https:///Sebastiaan
08/01/2023, 1:18 PMtype="Our.Umbraco.Media.EmbedProviders, MyProjectLib.dll".dllDan 'Diplo' Booth
08/01/2023, 7:30 PMOwain
08/01/2023, 8:37 PMOwain
08/01/2023, 8:55 PMhuwred
08/02/2023, 7:54 AMhuwred
08/02/2023, 8:13 AMSebastiaan
08/02/2023, 8:19 AM"youtu.be/.*",
"youtube.com/watch.*"huwred
08/02/2023, 8:29 AMpublic class NoCookieEmbedProvider : EmbedProviderBase
        {
            //https://www.youtube-nocookie.com/embed=jNYR1ioecJY
            public override string ApiEndpoint => String.Empty;
            public override string[] UrlSchemeRegex => new string[]
            {
                @"youtube-nocookie\.com/*"
            };
            public override Dictionary<string, string> RequestParams => new Dictionary<string, string>();
            public override string GetMarkup(string url, int maxWidth = 0, int maxHeight = 0)
            {
                string videoFormat = "<div class=\"iplayer-container\"><iframe src=\"{0}\" name=\"youtubemediaplayer\" scrolling=\"no\" frameborder=\"no\" align=\"center\" autoplay=\"false\" width=\"{1}\" height=\"{2}\" allowfullscreen></iframe></div>";
                // pass in encoded Url, with and height, and turn off autoplay...
                var videoPlayerMarkup = string.Format(videoFormat, HttpUtility.HtmlEncode(url) , maxWidth, maxHeight);
                return videoPlayerMarkup;
            }
        }
        public class RegisterEmbedProvidersComposer : IUserComposer
        {
            public void Compose(Composition composition) {
                composition.OEmbedProviders().Append<NoCookieEmbedProvider>();
            }
        }Owain
08/02/2023, 8:31 AMOwain
08/02/2023, 8:31 AMusing System.Web;
using Umbraco.Web.Media.EmbedProviders;
namespace Our.Umbraco.Media.EmbedProviders
{
    public class YouTubeNoCookiesEmbed : AbstractProvider
    {
        public override bool SupportsDimensions
        {
            get { return true; }
        }
        public override string GetMarkup(string url, int maxWidth, int maxHeight)
        {
            // format of markup
            string videoFormat = "<iframe src=\"{0}\">" +
                "</iframe>";
            // pass in encoded Url, with and height, and turn off autoplay...
            var videoPlayerMarkup = string.Format(videoFormat, HttpUtility.HtmlEncode(url));
            return videoPlayerMarkup;
        }
    }
}Owain
08/02/2023, 8:32 AM<provider name="YoutubeNoCookies" type="Our.Umbraco.Media.EmbedProviders.YouTubeNoCookiesEmbed, MyProjectName">
        <urlShemeRegex><![CDATA[youtube-nocookie.com/embed/([a-zA-Z0-9-_]+)]]></urlShemeRegex>
        <apiEndpoint><![CDATA[https://www.youtube.com/oembed]]></apiEndpoint>
        <requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco">
            <param name="iframe">1</param>
            <param name="format">xml</param>
            <param name="scheme">https</param>
        </requestParams>
    </provider>Owain
08/02/2023, 8:32 AMSebastiaan
08/02/2023, 8:38 AMMatt Wise
08/02/2023, 8:40 AMSebastiaan
08/02/2023, 8:44 AMMatt Wise
08/02/2023, 8:45 AMMatt Wise
08/02/2023, 8:45 AMSebastiaan
08/02/2023, 8:45 AMhuwred
08/02/2023, 9:01 AMMatt Wise
08/02/2023, 9:02 AMhuwred
08/02/2023, 9:04 AMMatt Wise
08/02/2023, 9:05 AMhuwred
08/02/2023, 9:06 AMMatt Wise
08/02/2023, 9:07 AMhuwred
08/02/2023, 9:07 AMhuwred
08/02/2023, 9:09 AMMatt Wise
08/02/2023, 9:11 AMhuwred
08/02/2023, 9:11 AMMatt Wise
08/02/2023, 9:11 AMhuwred
08/02/2023, 9:21 AMcs
    public class YouTubeNoCookieEmbedProvider : EmbedProviderBase
    {
        //https://www.youtube-nocookie.com/embed/jNYR1ioecJY
        //https://www.youtube.com/watch?v=jNYR1ioecJY
        public override string ApiEndpoint => String.Empty;
        public override string[] UrlSchemeRegex => new string[]
        {
            "youtu.be/.*",
            "youtube.com/watch.*",
            "youtube-nocookie.com/embed/.*"
        };
        public override Dictionary<string, string> RequestParams => new Dictionary<string, string>();
        public override string GetMarkup(string url, int maxWidth = 0, int maxHeight = 0)
        {
            url = url.Replace(@"youtube", "youtube-nocookie")
                .Replace("watch?v=","embed/")
                .Replace("youtu.be/","www.youtube-nocookie.com/embed/");
            string videoFormat = "<div class=\"iplayer-container\"><iframe src=\"{0}\" name=\"youtubemediaplayer\" scrolling=\"no\" frameborder=\"no\" align=\"center\" autoplay=\"false\" width=\"{1}\" height=\"{2}\" allowfullscreen></iframe></div>";
            // pass in encoded Url, with and height
            var videoPlayerMarkup = string.Format(videoFormat, HttpUtility.HtmlEncode(url) , maxWidth, maxHeight);
            return videoPlayerMarkup;
        }
    }
    public class RegisterEmbedProvidersComposer : IUserComposer
    {
        public void Compose(Composition composition)
        {
            composition.OEmbedProviders().Remove<YouTube>();
            composition.OEmbedProviders().Append<YouTubeNoCookieEmbedProvider>();
        }
    }Owain
08/02/2023, 10:31 AMhuwred
08/02/2023, 10:40 AMSebastiaan
08/02/2023, 11:05 AMNik
08/02/2023, 2:11 PMBjarne Fyrstenborg
08/08/2023, 12:34 PMyoutube.com/shorts/.*