Skip to content

Commit ae0c14e

Browse files
committed
Add YouTube NoCookie support, fixes #826
1 parent a7f9567 commit ae0c14e

File tree

9 files changed

+22
-4
lines changed

9 files changed

+22
-4
lines changed

app/code/Magento/PageBuilder/etc/di.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,7 @@
361361
<arguments>
362362
<argument name="allowedHosts" xsi:type="array">
363363
<item name="youtube" xsi:type="string">youtube.com</item>
364+
<item name="youtube-nocookie" xsi:type="string">youtube-nocookie.com</item>
364365
<item name="vimeo" xsi:type="string">vimeo.com</item>
365366
</argument>
366367
</arguments>

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/video/converter/attribute/src.js

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/video/converter/attribute/videosrc.js

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/video/master.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/video/preview.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/video/converter/attribute/src.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,16 @@ export default class Src implements ConverterInterface {
3838

3939
const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
4040
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
41+
const youtubeNoCookieRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
42+
"(?:youtube-nocookie\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
4143
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
4244
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");
4345
const fileRegExp = new RegExp("^(?:https:|http:)?\\/\\/.*[\\\\\\/].+\\.(webm|mp4|ogv)(?!\w)");
4446

4547
if (youtubeRegExp.test(value)) {
4648
return "https://www.youtube.com/embed/" + youtubeRegExp.exec(value)[1];
49+
} else if (youtubeNoCookieRegExp.test(value)) {
50+
return "https://www.youtube-nocookie.com/embed/" + youtubeNoCookieRegExp.exec(value)[1];
4751
} else if (vimeoRegExp.test(value)) {
4852
return "https://player.vimeo.com/video/" + vimeoRegExp.exec(value)[3] + "?title=0&byline=0&portrait=0";
4953
} else if (fileRegExp.test(value)) {

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/video/converter/attribute/videosrc.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,17 @@ export default class VideoSrc implements ConverterInterface {
9999

100100
const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
101101
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
102+
const youtubeNoCookieRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
103+
"(?:youtube-nocookie\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
102104
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
103105
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");
104106

105107
if (youtubeRegExp.test(value)) {
106108
return "https://www.youtube.com/embed/" + youtubeRegExp.exec(value)[1] +
107109
VideoSrc.parseYoutubeGetParams(value, data);
110+
} else if (youtubeNoCookieRegExp.test(value)) {
111+
return "https://www.youtube-nocookie.com/embed/" + youtubeNoCookieRegExp.exec(value)[1] +
112+
VideoSrc.parseYoutubeGetParams(value, data);
108113
} else if (vimeoRegExp.test(value)) {
109114
return "https://player.vimeo.com/video/" + vimeoRegExp.exec(value)[3] +
110115
"?title=0&byline=0&portrait=0" + (data.autoplay === "true" ? "&autoplay=1&autopause=0&muted=1" : "");

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/video/master.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export default class Master extends BaseMaster {
99

1010
public isHosted(src: string): boolean {
1111
const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
12-
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
12+
"(?:youtu\\.be\/|(?:youtube\\.com\/|youtube-nocookie\\.com\/)(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))" +
13+
"([\\w-]{11})(?![\\w-])");
1314
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
1415
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");
1516
return (vimeoRegExp.test(src) || youtubeRegExp.test(src));

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/video/preview.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ export default class Preview extends BasePreview {
3434

3535
public isHosted(src: string): boolean {
3636
const youtubeRegExp = new RegExp("^(?:https?:\/\/|\/\/)?(?:www\\.|m\\.)?" +
37-
"(?:youtu\\.be\/|youtube\\.com\/(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))([\\w-]{11})(?![\\w-])");
37+
"(?:youtu\\.be\/|(?:youtube\\.com\/|youtube-nocookie\\.com\/)(?:embed\/|v\/|watch\\?v=|watch\\?.+&v=))" +
38+
"([\\w-]{11})(?![\\w-])");
3839
const vimeoRegExp = new RegExp("https?:\/\/(?:www\\.|player\\.)?vimeo.com\/(?:channels\/" +
3940
"(?:\\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\\d+)\/video\/|video\/|)(\\d+)(?:$|\/|\\?)");
4041
return (vimeoRegExp.test(src) || youtubeRegExp.test(src));

0 commit comments

Comments
 (0)