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
to have this :
<!-- 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>
and then I have a new class that looks like this :
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 AMOEmbedVideo
but that didn't work eitherSebastiaan
08/01/2023, 11:34 AMtype="Umbraco.Web.Media.EmbedProviders.YouTubeNoCookiesEmbed, umbraco"
your namespace is Our.Umbraco.Media.EmbedProviders
and your dll name is not umbraco.dll
So it will be type="Our.Umbraco.Media.EmbedProviders, MyProjectLib.dll"
Owain
08/01/2023, 12:52 PMSebastiaan
08/01/2023, 1:14 PMembed\/
should probably be embed=
Sebastiaan
08/01/2023, 1:15 PM"<iframe src=\"//https:///
has one to many slashes FYI - also not sure why it starts with // before the https?Sebastiaan
08/01/2023, 1:18 PMtype="Our.Umbraco.Media.EmbedProviders, MyProjectLib.dll"
should not include .dll
Dan '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/.*
format as well, e.g. https://youtube.com/shorts/jNYR1ioecJY