ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video …) - Version 9.7.10

Version Description

Download this release

Release Info

Developer nico23
Plugin Icon 128x128 ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video …)
Version 9.7.10
Comparing to
See all releases

Code changes from version 9.7.8 to 9.7.10

advanced-responsive-video-embedder.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: ARVE Advanced Responsive Video Embedder
4
  * Plugin URI: https://nextgenthemes.com/plugins/arve-pro/
5
  * Description: Easy responsive video embeds via URL (like WordPress) or Shortcodes. Supports almost anything you can imagine.
6
- * Version: 9.7.8
7
  * Author: Nicolas Jonas
8
  * Author URI: https://nextgenthemes.com
9
  * License: GPL-3.0
@@ -19,7 +19,7 @@
19
 
20
  namespace Nextgenthemes\ARVE;
21
 
22
- const VERSION = '9.7.8';
23
  const PRO_VERSION_REQUIRED = '5.2.0';
24
  const NUM_TRACKS = 3;
25
  const PLUGIN_FILE = __FILE__;
@@ -29,4 +29,8 @@ const PREMIUM_SECTIONS = array( 'pro', 'sticky-videos', 'random-video', 'vi
29
  const DEFAULT_MAXWIDTH = 900;
30
  const OEMBED_HTML_PRIORITY = -5;
31
 
 
 
 
 
32
  require_once __DIR__ . '/php/init.php';
3
  * Plugin Name: ARVE Advanced Responsive Video Embedder
4
  * Plugin URI: https://nextgenthemes.com/plugins/arve-pro/
5
  * Description: Easy responsive video embeds via URL (like WordPress) or Shortcodes. Supports almost anything you can imagine.
6
+ * Version: 9.7.10
7
  * Author: Nicolas Jonas
8
  * Author URI: https://nextgenthemes.com
9
  * License: GPL-3.0
19
 
20
  namespace Nextgenthemes\ARVE;
21
 
22
+ const VERSION = '9.7.10';
23
  const PRO_VERSION_REQUIRED = '5.2.0';
24
  const NUM_TRACKS = 3;
25
  const PLUGIN_FILE = __FILE__;
29
  const DEFAULT_MAXWIDTH = 900;
30
  const OEMBED_HTML_PRIORITY = -5;
31
 
32
+ if ( ! defined( 'ABSPATH' ) ) {
33
+ return; // no exit for use in build script
34
+ }
35
+
36
  require_once __DIR__ . '/php/init.php';
build/block.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-element', 'wp-i18n', 'wp-server-side-render'), 'version' => '63bc93ee08bf702f4b64');
1
+ <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-server-side-render'), 'version' => '5dfc9b8fb559fe422f78');
build/block.js CHANGED
@@ -1 +1 @@
1
- (()=>{"use strict";var e={n:t=>{var l=t&&t.__esModule?()=>t.default:()=>t;return e.d(l,{a:l}),l},d:(t,l)=>{for(var a in l)e.o(l,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:l[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.element,l=window.wp.i18n,a=window.wp.serverSideRender;var r=e.n(a);const n=window.wp.blockEditor,i=window.wp.components,o=window.ARVEsettings,s=window.wp,c=new DOMParser;function u(e){const t=[];return Object.entries(e).forEach((e=>{let[l,a]=e;const r={label:a,value:l};t.push(r)})),t}function d(e){if("string"!=typeof e.description)return"";if("string"==typeof e.descriptionlinktext){const l=e.description.split(e.descriptionlinktext);return(0,t.createElement)("span",null,(0,t.createElement)("span",null,l[0]),(0,t.createElement)("a",{href:e.descriptionlink},e.descriptionlinktext),",",(0,t.createElement)("span",null,l[1]))}return e.description}function p(e,t){const l=m(e,t);return e/l+":"+t/l}function m(e,t){return t?m(t,e%t):e}s.blocks.registerBlockType("nextgenthemes/arve-block",{title:"Video Embed (ARVE)",description:"You can disable help texts on the ARVE settings page to clean up the UI",icon:"video-alt3",category:"embed",supports:{AlignWide:!0,align:["left","right","center","wide","full"]},edit:e=>{const a=function(e){const a=[],r={},s=(0,t.createElement)("p",null,(0,l.__)("To edit the featured image, you need permission to upload media."));let m=!1;Object.values(o).forEach((e=>{r[e.tag]=[]})),Object.entries(o).forEach((a=>{let[o,b]=a,h=e.attributes[o],g="";switch(b.type){case"boolean":"sandbox"===o&&void 0===h&&(h=!0),r[b.tag].push((0,t.createElement)(i.ToggleControl,{key:o,label:b.label,help:d(b),checked:!!h,onChange:t=>e.setAttributes({[o]:t})}));break;case"select":r[b.tag].push((0,t.createElement)(i.SelectControl,{key:o,value:h,label:b.label,help:d(b),options:u(b.options),onChange:t=>e.setAttributes({[o]:t})}));break;case"string":r[b.tag].push((0,t.createElement)(i.TextControl,{key:o,label:b.label,placeholder:b.placeholder,help:d(b),value:h,onChange:t=>(function(e,t,l){if("url"===e){const e=c.parseFromString(t,"text/html").querySelector("iframe");if(e&&e.getAttribute("src")){t=e.src;const a=e.width,r=e.height;a&&r&&l.setAttributes({aspect_ratio:p(a,r)})}}}(o,t,e),e.setAttributes({[o]:t}))}));break;case"attachment_old":g=e.attributes[o+"_url"],r[b.tag].push((0,t.createElement)("div",null,(0,t.createElement)(n.MediaUploadCheck,null,(0,t.createElement)(n.MediaUpload,{onSelect:t=>e.setAttributes({[o]:t.id.toString(),[o+"_url"]:t.url}),allowedTypes:"image",render:e=>{let{open:a}=e;return(0,t.createElement)(i.Button,{className:"components-button--arve-thumbnail",onClick:a,"aria-label":(0,l.__)("Edit or update the image")},!!g&&(0,t.createElement)("div",null,(0,t.createElement)("img",{src:g,alt:(0,l.__)("Selected Thumbnail")})),(0,l.__)("Edit or update the image"))}})),!!h&&(0,t.createElement)(i.Button,{onClick:()=>e.setAttributes({[o]:"",[o+"_url"]:""})},(0,l.__)("Remove Custom Thumbnail")),(0,t.createElement)(i.TextControl,{label:b.label,placeholder:b.placeholder,help:d(b),value:h,onChange:t=>e.setAttributes({[o]:t})})));break;case"attachment":g=e.attributes[o+"_url"],r[b.tag].push((0,t.createElement)("div",{className:"editor-post-featured-image"},(0,t.createElement)(n.MediaUploadCheck,{fallback:s},(0,t.createElement)(n.MediaUpload,{title:(0,l.__)("Thumbnail"),onSelect:t=>(m=t,e.setAttributes({[o]:t.id.toString(),[o+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:"Image",modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:a}=e;return(0,t.createElement)("div",{className:"editor-post-featured-image__container"},(0,t.createElement)(i.Button,{className:h?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:a,"aria-describedby":h?`editor-post-featured-image-${h}-describedby`:""},!!h&&!!g&&(0,t.createElement)(i.ResponsiveWrapper,{naturalWidth:640,naturalHeight:380},(0,t.createElement)("img",{src:g,alt:""})),!h&&(0,l.__)("Set Thumbnail")),(0,t.createElement)(i.DropZone,null))},value:h})),!!h&&!!g&&(0,t.createElement)(n.MediaUploadCheck,null,(0,t.createElement)(n.MediaUpload,{title:(0,l.__)("Thumbnail"),onSelect:t=>(m=t,e.setAttributes({[o]:t.id.toString(),[o+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:"image",modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:a}=e;return(0,t.createElement)(i.Button,{onClick:a,isSecondary:!0},(0,l.__)("Replace Thumbnail"))}})),!!h&&(0,t.createElement)(n.MediaUploadCheck,null,(0,t.createElement)(i.Button,{onClick:()=>e.setAttributes({[o]:"",[o+"_url"]:""}),isLink:!0,isDestructive:!0},(0,l.__)("Remove Thumbnail"))),(0,t.createElement)(i.TextControl,{label:b.label,placeholder:b.placeholder,help:d(b),value:h,onChange:t=>e.setAttributes({[o]:t})})))}}));let b=!0;return Object.keys(r).forEach((e=>{var l;a.push((0,t.createElement)(i.PanelBody,{key:e,title:(l=e,l.charAt(0).toUpperCase()+l.slice(1)),initialOpen:b},r[e])),b=!1})),a}(e);return[(0,t.createElement)(r(),{key:"ssr",block:"nextgenthemes/arve-block",attributes:e.attributes}),(0,t.createElement)(n.InspectorControls,{key:"insp"},a)]},save:()=>null})})();
1
+ (()=>{"use strict";var e={};function t(){return t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(this,arguments)}e.n=t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},e.d=(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const r=window.wp.element,n=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"nextgenthemes/arve-block","title":"Video Embed (ARVE)","category":"embed","icon":"video-alt3","description":"Advanced Responsive Video Embedder","keywords":["embed","youtube","rumble","vimeo","odysee"],"version":"9.7.10-alpha","textdomain":"advanced-responsive-video-embedder","supports":{"align":["wide","full"]},"styles":[],"example":{"attributes":{"url":"https://www.youtube.com/watch?v=oe452WcY7fA","title":"Example Title"}},"editorScript":"arve-block","editorStyle":"arve","attributes":{"url":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"upload_date":{"type":"string"},"mode":{"type":"string"},"thumbnail":{"type":"string"},"hide_title":{"type":"boolean"},"grow":{"type":"string"},"fullscreen":{"type":"string"},"play_icon_style":{"type":"string"},"hover_effect":{"type":"string"},"disable_links":{"type":"string"},"align":{"type":"string"},"arve_link":{"type":"string"},"duration":{"type":"string"},"autoplay":{"type":"string"},"lightbox_maxwidth":{"type":"integer"},"sticky":{"type":"string"},"sticky_on_mobile":{"type":"string"},"sticky_position":{"type":"string"},"aspect_ratio":{"type":"string"},"parameters":{"type":"string"},"controlslist":{"type":"string"},"controls":{"type":"string"},"loop":{"type":"boolean"},"muted":{"type":"boolean"},"volume":{"type":"integer"},"random_video_url":{"type":"string"},"random_video_urls":{"type":"string"},"sandbox":{"type":"string"},"thumbnail_url":{"type":"string"}}}'),i=window.wp.i18n,a=window.wp.serverSideRender;var l=e.n(a);const o=window.wp.blockEditor,s=window.wp.components,c=window.wp.blocks,{name:p}=n,d=window.ARVEsettings,u=new DOMParser;function m(e){const t=[];return Object.entries(e).forEach((e=>{let[r,n]=e;const i={label:n,value:r};t.push(i)})),t}function b(e){if("string"!=typeof e.description)return"";if("string"==typeof e.descriptionlinktext){const t=e.description.split(e.descriptionlinktext);return(0,r.createElement)("span",null,(0,r.createElement)("span",null,t[0]),(0,r.createElement)("a",{href:e.descriptionlink},e.descriptionlinktext),",",(0,r.createElement)("span",null,t[1]))}return e.description}function g(e,t){const r=y(e,t);return e/r+":"+t/r}function y(e,t){return t?y(t,e%t):e}(0,c.registerBlockType)(p,{edit:function(e){const{attributes:{align:n},setAttributes:a}=e,c=(0,o.useBlockProps)(),p=function(e){const t=[],n={},a=(0,r.createElement)("p",null,(0,i.__)("To edit the featured image, you need permission to upload media."));let l=!1;Object.values(d).forEach((e=>{n[e.tag]=[]})),Object.entries(d).forEach((t=>{let[c,p]=t,d=e.attributes[c],y="";switch(p.type){case"boolean":"sandbox"===c&&void 0===d&&(d=!0),n[p.tag].push((0,r.createElement)(s.ToggleControl,{key:c,label:p.label,help:b(p),checked:!!d,onChange:t=>e.setAttributes({[c]:t})}));break;case"select":n[p.tag].push((0,r.createElement)(s.SelectControl,{key:c,value:d,label:p.label,help:b(p),options:m(p.options),onChange:t=>e.setAttributes({[c]:t})}));break;case"string":n[p.tag].push((0,r.createElement)(s.TextControl,{key:c,label:p.label,placeholder:p.placeholder,help:b(p),value:d,onChange:t=>(function(e,t,r){if("url"===e){const e=u.parseFromString(t,"text/html").querySelector("iframe");if(e&&e.getAttribute("src")){t=e.src;const n=e.width,i=e.height;n&&i&&r.setAttributes({aspect_ratio:g(n,i)})}}}(c,t,e),e.setAttributes({[c]:t}))}));break;case"attachment":y=e.attributes[c+"_url"],n[p.tag].push((0,r.createElement)(s.BaseControl,{className:"editor-post-featured-image",help:b(p),key:c},(0,r.createElement)(o.MediaUploadCheck,{fallback:a},(0,r.createElement)(o.MediaUpload,{title:(0,i.__)("Thumbnail"),onSelect:t=>(l=t,e.setAttributes({[c]:t.id.toString(),[c+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:["image"],modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:t}=e;return(0,r.createElement)("div",{className:"editor-post-featured-image__container"},(0,r.createElement)(s.Button,{className:d?"editor-post-featured-image__preview":"editor-post-featured-image__toggle",onClick:t,"aria-label":d?(0,i.__)("Edit or update the image"):null,"aria-describedby":d?`editor-post-featured-image-${d}-describedby`:""},!!d&&!!y&&(0,r.createElement)("div",{style:{overflow:"hidden"}},(0,r.createElement)(s.ResponsiveWrapper,{naturalWidth:640,naturalHeight:360,isInline:!0},(0,r.createElement)("img",{src:y,alt:"ARVE Thumbnail",style:{objectFit:"cover"}}))),!d&&(0,i.__)("Set Thumbnail")),(0,r.createElement)(s.DropZone,null))},value:d})),!!d&&!!y&&(0,r.createElement)(o.MediaUploadCheck,null,(0,r.createElement)(o.MediaUpload,{title:(0,i.__)("Thumbnail"),onSelect:t=>(l=t,e.setAttributes({[c]:t.id.toString(),[c+"_url"]:t.url})),unstableFeaturedImageFlow:!0,allowedTypes:["image"],modalClass:"editor-post-featured-image__media-modal",render:e=>{let{open:t}=e;return(0,r.createElement)(s.Button,{onClick:t,isSecondary:!0},(0,i.__)("Replace Thumbnail"))}})),!!d&&(0,r.createElement)(o.MediaUploadCheck,null,(0,r.createElement)(s.Button,{onClick:()=>e.setAttributes({[c]:"",[c+"_url"]:""}),isLink:!0,isDestructive:!0},(0,i.__)("Remove Thumbnail")))))}}));let c=!0;return n.main.push((0,r.createElement)(s.BaseControl,{key:"info",help:(0,i.__)("You can disable the extensive help texts on the ARVE settings page to clean up this UI","advanced-responsive-video-embedder")},(0,r.createElement)(s.BaseControl.VisualLabel,null,(0,i.__)("Info","advanced-responsive-video-embedder")))),Object.keys(n).forEach((e=>{var i;t.push((0,r.createElement)(s.PanelBody,{key:e,title:(i=e,i.charAt(0).toUpperCase()+i.slice(1)),initialOpen:c},n[e])),c=!1})),t}(e);return[(0,r.createElement)("div",t({},c,{key:"block"}),(0,r.createElement)("div",{className:"arve-select-helper",style:{textAlign:"center",padding:".1em"}},(0,i.__)("Select ARVE block","advanced-responsive-video-embedder")),(0,r.createElement)(l(),{block:"nextgenthemes/arve-block",attributes:e.attributes})),(0,r.createElement)(o.InspectorControls,{key:"insp"},p)]}})})();
changelog.md CHANGED
@@ -4,6 +4,15 @@
4
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
5
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
6
 
 
 
 
 
 
 
 
 
 
7
  ### 2022-09-04 9.7.8 ###
8
 
9
  * New: Add new 'Darken' hover effect option for Pro Addon.
4
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
5
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
6
 
7
+ ### 2022-09-09 9.7.9 ###
8
+
9
+ ##### Improvents Gutenberg Block #####
10
+ * Introduces clickable area above the Block in the Editor.
11
+ * Fixed Thumbnail image overflowing.
12
+ * Removed maximal width setting when not aligned. This concept does not fit Gutenberg. Width should be controlled by setting the block to wide or full alignment.
13
+ * Introduces a recommended `block.json`.
14
+ * Some other minor improvements.
15
+
16
  ### 2022-09-04 9.7.8 ###
17
 
18
  * New: Add new 'Darken' hover effect option for Pro Addon.
php/functions-assets.php CHANGED
@@ -30,45 +30,34 @@ function register_assets() {
30
 
31
  if ( function_exists( 'register_block_type' ) ) :
32
 
33
- $sc_settings = shortcode_settings();
34
- $options = options();
35
 
36
- foreach ( $sc_settings as $key => $v ) {
37
-
38
- $attr[ $key ] = array(
39
- 'type' => ( 'select' === $v['type'] ) ? 'string' : $v['type'],
40
- );
41
 
42
  if ( $options['gutenberg_help'] && ! empty( $v['description'] ) ) {
43
- $sc_settings[ $key ]['description'] = wp_strip_all_tags( $v['description'] );
44
  } else {
45
- unset( $sc_settings[ $key ]['description'] );
46
- unset( $sc_settings[ $key ]['descriptionlink'] );
47
- unset( $sc_settings[ $key ]['descriptionlinktext'] );
48
  }
49
  }
50
 
51
- $attr['thumbnail'] = array( 'type' => 'string' );
52
- $attr['thumbnail_url'] = array( 'type' => 'string' );
53
-
54
  Common\asset(
55
  array(
56
- 'handle' => 'arve-block',
57
- 'src' => plugins_url( 'build/block.js', PLUGIN_FILE ),
58
- 'path' => PLUGIN_DIR . '/build/block.js',
59
- 'deps' => array( 'arve' ),
60
- 'footer' => 'false',
61
  )
62
  );
63
- wp_localize_script( 'arve-block', 'ARVEsettings', $sc_settings );
64
-
65
  // Register our block, and explicitly define the attributes we accept.
66
  register_block_type(
67
- 'nextgenthemes/arve-block',
68
  array(
69
- 'attributes' => $attr,
70
- 'editor_script' => 'arve-block',
71
- 'editor_style' => 'arve',
72
  'render_callback' => __NAMESPACE__ . '\gutenberg_block',
73
  )
74
  );
@@ -88,9 +77,9 @@ function action_wp_enqueue_scripts() {
88
  }
89
  }
90
 
91
- function gutenberg_block( $args ) {
92
 
93
- if ( empty( $args['url'] ) ) {
94
  \ob_start();
95
  ?>
96
  <div class="components-placeholder wp-block-embed">
@@ -105,18 +94,14 @@ function gutenberg_block( $args ) {
105
  return \ob_get_clean();
106
  }
107
 
108
- foreach ( $args as $key => $value ) {
109
 
110
  if ( is_bool( $value ) ) {
111
- $args[ $key ] = $value ? 'true' : 'false';
112
  }
113
  }
114
 
115
- $args['origin_data']['from'] = 'gutenberg_block';
116
-
117
- if ( isset( $args['align'] ) && in_array( $args['align'], array( 'wide', 'full' ), true ) ) {
118
- $args['align'] = null;
119
- }
120
 
121
- return shortcode( $args );
122
  }
30
 
31
  if ( function_exists( 'register_block_type' ) ) :
32
 
33
+ $settings = gutenberg_ui_settings();
34
+ $options = options();
35
 
36
+ foreach ( $settings as $key => $v ) {
 
 
 
 
37
 
38
  if ( $options['gutenberg_help'] && ! empty( $v['description'] ) ) {
39
+ $settings[ $key ]['description'] = wp_strip_all_tags( $v['description'] );
40
  } else {
41
+ unset( $settings[ $key ]['description'] );
42
+ unset( $settings[ $key ]['descriptionlink'] );
43
+ unset( $settings[ $key ]['descriptionlinktext'] );
44
  }
45
  }
46
 
 
 
 
47
  Common\asset(
48
  array(
49
+ 'handle' => 'arve-block',
50
+ 'src' => plugins_url( 'build/block.js', PLUGIN_FILE ),
51
+ 'path' => PLUGIN_DIR . '/build/block.js',
52
+ 'deps' => array( 'arve' ),
53
+ 'footer' => 'false',
54
  )
55
  );
56
+ wp_localize_script( 'arve-block', 'ARVEsettings', $settings );
 
57
  // Register our block, and explicitly define the attributes we accept.
58
  register_block_type(
59
+ PLUGIN_DIR . '/src/block.json',
60
  array(
 
 
 
61
  'render_callback' => __NAMESPACE__ . '\gutenberg_block',
62
  )
63
  );
77
  }
78
  }
79
 
80
+ function gutenberg_block( $attr, $content, $block ) {
81
 
82
+ if ( empty( $attr['url'] ) && empty( $attr['random_video_url'] ) && empty( $attr['random_video_urls'] ) ) {
83
  \ob_start();
84
  ?>
85
  <div class="components-placeholder wp-block-embed">
94
  return \ob_get_clean();
95
  }
96
 
97
+ foreach ( $attr as $key => $value ) {
98
 
99
  if ( is_bool( $value ) ) {
100
+ $attr[ $key ] = $value ? 'true' : 'false';
101
  }
102
  }
103
 
104
+ $attr['origin_data']['from'] = 'gutenberg_block';
 
 
 
 
105
 
106
+ return shortcode( $attr );
107
  }
php/functions-html-output.php CHANGED
@@ -5,7 +5,6 @@ use function \Nextgenthemes\ARVE\Common\get_var_dump;
5
 
6
  function build_html( array $a ) {
7
 
8
- $options = options();
9
  $wrapped_video = build_tag(
10
  array(
11
  'name' => 'inner',
@@ -18,13 +17,15 @@ function build_html( array $a ) {
18
  $a
19
  );
20
 
 
 
21
  return build_tag(
22
  array(
23
  'name' => 'arve',
24
  'tag' => 'div',
25
  'inner_html' => $wrapped_video . promote_link( $a['arve_link'] ) . build_seo_data( $a ),
26
  'attr' => array(
27
- 'class' => $a['align'] ? 'arve align' . $a['align'] : 'arve',
28
  'data-mode' => $a['mode'],
29
  'data-oembed' => $a['oembed_data'] ? '1' : false,
30
  'data-provider' => $a['provider'],
@@ -289,7 +290,7 @@ function build_rating_meta( array $a ) {
289
  return '';
290
  }
291
 
292
- $html .= '<span itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating">';
293
  $html .= sprintf( '<meta itemprop="ratingValue" content="%s">', esc_attr( $a['rating'] ) );
294
 
295
  if ( ! empty( $a['review_count'] ) ) {
5
 
6
  function build_html( array $a ) {
7
 
 
8
  $wrapped_video = build_tag(
9
  array(
10
  'name' => 'inner',
17
  $a
18
  );
19
 
20
+ $align_class = $a['align'] ? " align{$a['align']}" : '';
21
+
22
  return build_tag(
23
  array(
24
  'name' => 'arve',
25
  'tag' => 'div',
26
  'inner_html' => $wrapped_video . promote_link( $a['arve_link'] ) . build_seo_data( $a ),
27
  'attr' => array(
28
+ 'class' => 'arve wp-block-nextgenthemes-arve' . $align_class,
29
  'data-mode' => $a['mode'],
30
  'data-oembed' => $a['oembed_data'] ? '1' : false,
31
  'data-provider' => $a['provider'],
290
  return '';
291
  }
292
 
293
+ $html = '<span itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating">';
294
  $html .= sprintf( '<meta itemprop="ratingValue" content="%s">', esc_attr( $a['rating'] ) );
295
 
296
  if ( ! empty( $a['review_count'] ) ) {
php/functions-misc.php CHANGED
@@ -126,3 +126,37 @@ function seconds_to_iso8601_duration( $time ) {
126
 
127
  return $str;
128
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
 
127
  return $str;
128
  }
129
+
130
+ /**
131
+ * Check if Gutenberg is enabled.
132
+ * Must be used not earlier than plugins_loaded action fired.
133
+ *
134
+ * @return bool
135
+ */
136
+ function is_gutenberg() {
137
+
138
+ $gutenberg = false;
139
+ $block_editor = false;
140
+
141
+ if ( has_filter( 'replace_editor', 'gutenberg_init' ) ) {
142
+ // Gutenberg is installed and activated.
143
+ $gutenberg = true;
144
+ }
145
+
146
+ if ( version_compare( $GLOBALS['wp_version'], '5.0-beta', '>' ) ) {
147
+ // Block editor.
148
+ $block_editor = true;
149
+ }
150
+
151
+ if ( ! $gutenberg && ! $block_editor ) {
152
+ return false;
153
+ }
154
+
155
+ if ( ! class_exists( 'Classic_Editor' ) ) {
156
+ return true;
157
+ }
158
+
159
+ $use_block_editor = ( get_option( 'classic-editor-replace' ) === 'no-replace' );
160
+
161
+ return $use_block_editor;
162
+ }
php/functions-settings.php CHANGED
@@ -96,18 +96,8 @@ function shortcode_settings() {
96
 
97
  // TODO this is unused
98
  function gutenberg_ui_settings( $html5 = false ) {
99
-
100
- $settings = all_settings();
101
-
102
- foreach ( $settings as $k => $v ) {
103
-
104
- if ( $html5 && isset( $v['html5'] ) && ! $v['html5'] ) {
105
- unset( $settings[ $k ] );
106
- } elseif ( 'html5' === $v['tag'] ) {
107
- unset( $settings[ $k ] );
108
- }
109
- }
110
-
111
  return $settings;
112
  }
113
 
@@ -363,11 +353,12 @@ function all_settings() {
363
  'description' => __( 'URL or media gallery image ID used for thumbnail', 'advanced-responsive-video-embedder' ),
364
  ),
365
  'thumbnail_post_image_fallback' => array(
366
- 'tag' => 'pro',
367
- 'default' => false,
368
- 'shortcode' => false,
369
- 'label' => __( 'Thumbnail Featured Image Fallback', 'advanced-responsive-video-embedder' ),
370
- 'type' => 'boolean',
 
371
  ),
372
  'thumbnail' => array(
373
  'ui' => 'image_upload',
@@ -382,7 +373,7 @@ function all_settings() {
382
  'placeholder' => __( 'Image URL or media library image ID', 'advanced-responsive-video-embedder' ),
383
  'description' => sprintf(
384
  // Translators: 1 Link, 2 Provider list
385
- __( 'Media library image ID (Select above in Gutenberg) or image URL for preview image for Lazyload modes, always used for SEO. <a href="%1$s">ARVE Pro</a> is able to get them from %2$s automatically.', 'advanced-responsive-video-embedder' ),
386
  esc_url( $pro_addon_link ),
387
  esc_html( $auto_thumbs )
388
  ),
@@ -833,7 +824,7 @@ function all_settings() {
833
  ),
834
  );
835
 
836
- $settings = apply_filters( 'nextgenthemes/arve/settings', $settings );
837
 
838
  foreach ( $properties as $provider => $v ) {
839
 
96
 
97
  // TODO this is unused
98
  function gutenberg_ui_settings( $html5 = false ) {
99
+ $settings = shortcode_settings();
100
+ unset( $settings['maxwidth'] );
 
 
 
 
 
 
 
 
 
 
101
  return $settings;
102
  }
103
 
353
  'description' => __( 'URL or media gallery image ID used for thumbnail', 'advanced-responsive-video-embedder' ),
354
  ),
355
  'thumbnail_post_image_fallback' => array(
356
+ 'tag' => 'pro',
357
+ 'default' => false,
358
+ 'shortcode' => false,
359
+ 'label' => __( 'Thumbnail Featured Image Fallback', 'advanced-responsive-video-embedder' ),
360
+ 'type' => 'boolean',
361
+ 'description' => __( 'In case ARVE Pro can not get a thumbnail, the posts Featured image will be used instead', 'advanced-responsive-video-embedder' ),
362
  ),
363
  'thumbnail' => array(
364
  'ui' => 'image_upload',
373
  'placeholder' => __( 'Image URL or media library image ID', 'advanced-responsive-video-embedder' ),
374
  'description' => sprintf(
375
  // Translators: 1 Link, 2 Provider list
376
+ __( 'Media library image ID or image URL for preview image for SEO and Lazyload modes. <a href="%1$s">ARVE Pro</a> is able to get them from %2$s automatically, leave empty in this case unless you want use a different thumbnail.', 'advanced-responsive-video-embedder' ),
377
  esc_url( $pro_addon_link ),
378
  esc_html( $auto_thumbs )
379
  ),
824
  ),
825
  );
826
 
827
+ //$settings = apply_filters( 'nextgenthemes/arve/settings', $settings );
828
 
829
  foreach ( $properties as $provider => $v ) {
830
 
php/functions-shortcode-args.php CHANGED
@@ -78,6 +78,8 @@ function arg_maxwidth( array $a ) {
78
 
79
  if ( in_array( $a['align'], array( 'left', 'right', 'center' ), true ) ) {
80
  $a['maxwidth'] = (int) $options['align_maxwidth'];
 
 
81
  } elseif ( empty( $options['maxwidth'] ) ) {
82
  $a['maxwidth'] = (int) empty( $GLOBALS['content_width'] ) ? DEFAULT_MAXWIDTH : $GLOBALS['content_width'];
83
  } else {
@@ -85,10 +87,6 @@ function arg_maxwidth( array $a ) {
85
  }
86
  }
87
 
88
- if ( $a['maxwidth'] < 50 ) {
89
- $a['errors']->add( 'maxw', __( 'Maxwidth needs to be 50+', 'advanced-responsive-video-embedder' ) );
90
- }
91
-
92
  return $a['maxwidth'];
93
  }
94
 
@@ -228,6 +226,8 @@ function validate_align( array $a ) {
228
  case 'left':
229
  case 'right':
230
  case 'center':
 
 
231
  break;
232
  default:
233
  $a['errors']->add(
78
 
79
  if ( in_array( $a['align'], array( 'left', 'right', 'center' ), true ) ) {
80
  $a['maxwidth'] = (int) $options['align_maxwidth'];
81
+ } elseif ( is_gutenberg() ) {
82
+ $a['maxwidth'] = false;
83
  } elseif ( empty( $options['maxwidth'] ) ) {
84
  $a['maxwidth'] = (int) empty( $GLOBALS['content_width'] ) ? DEFAULT_MAXWIDTH : $GLOBALS['content_width'];
85
  } else {
87
  }
88
  }
89
 
 
 
 
 
90
  return $a['maxwidth'];
91
  }
92
 
226
  case 'left':
227
  case 'right':
228
  case 'center':
229
+ case 'wide':
230
+ case 'full':
231
  break;
232
  default:
233
  $a['errors']->add(
php/providers.php CHANGED
@@ -1,664 +1,663 @@
1
  <?php return [
2
  'alugha' => [
3
- 'name' => 'Alugha',
4
- 'regex' => '#https?://(www\\.)?alugha\\.com/(1/)?videos/(?<id>[a-z0-9_\\-]+)#i',
5
- 'oembed' => false,
6
- 'embed_url' => 'https://alugha.com/embed/web-player/?v=%s',
7
  'default_params' => 'nologo=1',
8
  'auto_thumbnail' => true,
9
- 'tests' => [
10
  0 => [
11
  'url' => 'https://alugha.com/videos/056c3560-801c-11ec-acb8-cf7ea315aa57/share',
12
- 'id' => '056c3560-801c-11ec-acb8-cf7ea315aa57',
13
  ],
14
  1 => [
15
  'url' => 'https://alugha.com/videos/e5ddd7d0-6b7c-11eb-b741-7b3016ed7f90',
16
- 'id' => 'e5ddd7d0-6b7c-11eb-b741-7b3016ed7f90',
17
  ],
18
  ],
19
  ],
20
  'archiveorg' => [
21
- 'name' => 'Archive.org',
22
- 'oembed' => false,
23
- 'regex' => '#https?://(www\\.)?archive\\.org/(details|embed)/(?<id>[0-9a-z\\-]+)#i',
24
- 'embed_url' => 'https://www.archive.org/embed/%s/',
25
  'default_params' => '',
26
  'auto_thumbnail' => false,
27
- 'tests' => [
28
  0 => [
29
  'url' => 'https://archive.org/details/arashyekt4_gmail_Cat',
30
- 'id' => 'arashyekt4',
31
  ],
32
  ],
33
  ],
34
  'bannedvideo' => [
35
- 'name' => 'Banned.video',
36
- 'oembed' => false,
37
- 'regex' => '#https://banned\\.video/watch\\?id=(?<id>[a-z0-9]+)#i',
38
  'embed_url' => 'https://api.banned.video/embed/%s',
39
- 'tests' => [
40
  0 => [
41
  'url' => 'https://banned.video/watch?id=5ffe509f0d763c3dca0e8ad7',
42
- 'id' => '5ffe509f0d763c3dca0e8ad7',
43
  ],
44
  ],
45
  ],
46
  'bitchute' => [
47
- 'name' => 'Bitchute',
48
- 'oembed' => false,
49
- 'regex' => '#https?://www\\.bitchute\\.com/(video|embed)/(?<id>[0-9a-z\\-]+)#i',
50
- 'embed_url' => 'https://www.bitchute.com/embed/%s/',
51
- 'rebuild_url' => 'https://www.bitchute.com/video/%s/',
52
  'default_params' => '',
53
  'auto_thumbnail' => false,
54
- 'tests' => [
55
  0 => [
56
  'url' => 'https://www.bitchute.com/video/eCctkmPpK8tq/',
57
- 'id' => 'eCctkmPpK8tq',
58
- ],
59
- ],
60
- ],
61
- 'mailru' => [
62
- 'name' => 'Mail.ru',
63
- 'oembed' => false,
64
- 'regex' => '#https?://my\\.mail\\.ru/video/embed/(?<id>[0-9]+)#i',
65
- 'oembed' => false,
66
- 'embed_url' => 'https://my.mail.ru/video/embed/%s',
67
- 'requires_src' => true,
68
- 'tests' => [
69
- 0 => [
70
- 'url' => 'https://my.mail.ru/video/embed/1475383959813619758',
71
- 'id' => 1475383959813619758,
72
  ],
73
  ],
74
  ],
75
  'brightcove' => [
76
- 'name' => 'Brightcove',
77
- 'regex' => '#https?://(players|link)\\.brightcove\\.net/(?<account_id>[0-9]+)/(?<brightcove_player>[a-z0-9]+)_(?<brightcove_embed>[a-z0-9]+)/index\\.html\\?videoId=(?<id>[0-9]+)#i',
78
- 'oembed' => false,
79
- 'embed_url' => 'https://players.brightcove.net/%s/%s_%s/index.html?videoId=%s',
80
  'requires_src' => true,
81
- 'tests' => [
82
  0 => [
83
- 'url' => 'https://players.brightcove.net/624246174001/BJXA5Px6f_default/index.html?videoId=5809251338001',
84
- 'account_id' => 624246174001,
85
  'brightcove_player' => 'BJXA5Px6f',
86
- 'brightcove_embed' => 'default',
87
- 'id' => 5809251338001,
88
  ],
89
  1 => [
90
- 'url' => 'http://players.brightcove.net/1160438696001/default_default/index.html?videoId=4587535845001',
91
- 'account_id' => 1160438696001,
92
  'brightcove_player' => 'default',
93
- 'brightcove_embed' => 'default',
94
- 'id' => 4587535845001,
95
  ],
96
  2 => [
97
- 'url' => 'http://players.brightcove.net/5107476400001/B1xUkhW8i_default/index.html?videoId=5371391223001',
98
- 'account_id' => 5107476400001,
99
  'brightcove_player' => 'B1xUkhW8i',
100
- 'brightcove_embed' => 'default',
101
- 'id' => 5371391223001,
102
  ],
103
  ],
104
  ],
105
  'brighteon' => [
106
- 'name' => 'Brighteon',
107
- 'regex' => '#https?://(www)\\.brighteon\\.com/(?<id>[a-z0-9-]+)#i',
108
- 'oembed' => false,
109
- 'embed_url' => 'https://www.brighteon.com/embed/%s/',
110
  'requires_src' => false,
111
- 'tests' => [
112
  0 => [
113
  'url' => 'https://www.brighteon.com/e7d18308-7cae-4a04-8a42-7088a8bea02c',
114
- 'id' => 'e7d18308-7cae-4a04-8a42-7088a8bea02c',
115
  ],
116
  ],
117
  ],
118
  'cantcensortruthcom' => [
119
- 'name' => 'cantcensortruth.com',
120
- 'oembed' => false,
121
- 'regex' => '#https://cantcensortruth\\.com/watch\\?id=(?<id>[a-z0-9]+)#i',
122
  'embed_url' => 'https://api.banned.video/embed/%s',
123
- 'tests' => [
124
  0 => [
125
  'url' => 'https://cantcensortruth.com/watch?id=601218b0de226411596203ae',
126
- 'id' => '601218b0de226411596203ae',
127
  ],
128
  ],
129
  ],
130
  'comedycentral' => [
131
- 'name' => 'Comedy Central',
132
- 'oembed' => false,
133
- 'regex' => '#https?://media\\.mtvnservices\\.com/embed/mgid:arc:video:comedycentral\\.com:(?<id>[-a-z0-9]{36})#i',
134
- 'embed_url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:%s',
135
- 'requires_src' => true,
136
  'auto_thumbnail' => false,
137
- 'tests' => [
138
  0 => [
139
  'url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:c80adf02-3e24-437a-8087-d6b77060571c',
140
- 'id' => 'c80adf02-3e24-437a-8087-d6b77060571c',
141
  ],
142
  1 => [
143
  'url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:c3c1da76-96c2-48b4-b38d-8bb16fbf7a58',
144
- 'id' => 'c3c1da76-96c2-48b4-b38d-8bb16fbf7a58',
145
  ],
146
  ],
147
  ],
148
  'dailymotion' => [
149
- 'name' => 'Dailymotion',
150
- 'oembed' => true,
151
- 'regex' => '#https?://(www\\.)?(dai\\.ly|dailymotion\\.com/video)/(?<id>[a-z0-9]+)#i',
152
- 'embed_url' => 'https://www.dailymotion.com/embed/video/%s',
153
- 'rebuild_url' => 'https://www.dailymotion.com/video/%s',
154
  'default_params' => 'logo=0&hideInfos=1&related=0',
155
  'auto_thumbnail' => true,
156
- 'auto_title' => true,
157
- 'tests' => [
158
  0 => [
159
  'url' => 'https://www.dailymotion.com/video/x84qh50',
160
- 'id' => 'x84qh50',
161
  ],
162
  1 => [
163
  'url' => 'https://dai.ly/x84qh50',
164
- 'id' => 'x84qh50',
165
  ],
166
  ],
167
  ],
168
  'dailymotion_playlist' => [
169
- 'name' => 'Dailymotion Playlist',
170
- 'oembed' => false,
171
- 'regex' => '#https?://(www\\.)?dailymotion\\.com/playlist/(?<id>[a-z0-9]+)#i',
172
- 'embed_url' => 'https://www.dailymotion.com/embed/playlist/%s',
173
  'auto_thumbnail' => false,
174
- 'tests' => [
175
  0 => [
176
  'url' => 'http://www.dailymotion.com/playlist/x3yk8p_PHIL-MDS_nature-et-environnement-2011/1#video=xm3x45',
177
- 'id' => 'x3yk8p',
178
  ],
179
  ],
180
  ],
181
  'dtube' => [
182
- 'name' => 'DTube',
183
- 'oembed' => false,
184
- 'regex' => '%https?://d\\.tube(/#!)?/v/(?<id>[^"]+)%i',
185
  'embed_url' => 'https://emb.d.tube/#!/%s',
186
- 'tests' => [
187
  0 => [
188
  'url' => 'https://d.tube/#!/v/exyle/bgc244pb',
189
- 'id' => 'exyle/bgc244pb',
190
  ],
191
  ],
192
  ],
193
  'facebook' => [
194
- 'name' => 'Facebook',
195
- 'oembed' => false,
196
- 'regex' => '#(?<id>https?://([a-z]+\\.)?facebook\\.com/[-.a-z0-9]+/videos/[^\\s]+)#i',
197
- 'url_encode_id' => true,
198
- 'embed_url' => 'https://www.facebook.com/plugins/video.php?href=%s',
199
  'auto_thumbnail' => false,
200
- 'tests' => [
201
  0 => [
202
  'url' => 'https://www.facebook.com/TheKillingsOfTonyBlair/videos/vb.551089058285349/562955837098671/?type=2&theater',
203
- 'id' => 'https://www.facebook.com/TheKillingsOfTonyBlair/videos/vb.551089058285349/562955837098671/?type=2&theater',
204
  ],
205
  1 => [
206
  'url' => 'https://web.facebook.com/XTvideo/videos/10153906059711871/',
207
- 'id' => 'https://web.facebook.com/XTvideo/videos/10153906059711871/',
208
  ],
209
  ],
210
  ],
211
  'gab' => [
212
- 'name' => 'Gab TV',
213
- 'oembed' => false,
214
- 'regex' => '#https?://tv\\.gab\\.com/channel/(?<account_id>[a-z0-9]+)/(view|embed)/(?<id>[^\\s/]+)#i',
215
- 'embed_url' => 'https://tv.gab.com/channel/%s/embed/%s',
216
- 'default_params' => '', // minimal=on
217
- 'tests' => [
218
- 0 => [
219
- 'url' => 'https://tv.gab.com/channel/owenbenjamin/view/1190-live-with-curtis-stone-the-60fb935386d788cd4a48c43a',
220
  'channel' => 'owenbenjamin',
221
- 'id' => '1190-live-with-curtis-stone-the-60fb935386d788cd4a48c43a',
222
  ],
223
  1 => [
224
- 'url' => 'https://tv.gab.com/channel/realalexjones/embed/doctor-exposes-covid-vaccine-attacking-blood-6155ff91153e0a6ab9e5ef93',
225
  'channel' => 'owenbenjamin',
226
- 'id' => 'doctor-exposes-covid-vaccine-attacking-blood-6155ff91153e0a6ab9e5ef93',
227
  ],
228
  ],
229
  ],
230
  'googledrive' => [
231
- 'name' => 'Google Drive',
232
- 'oembed' => false,
233
- 'regex' => '#https?://drive\\.google\\.com/file/d/(?<id>[^\\s/]+)#i',
234
  'embed_url' => 'https://drive.google.com/file/d/%s/preview',
235
- 'tests' => [
236
  0 => [
237
  'url' => 'https://drive.google.com/file/d/0BymXD1aD6QzJWkh4Q0hPRWlPYkk/edit',
238
- 'id' => '0BymXD1aD6QzJWkh4Q0hPRWlPYkk',
239
  ],
240
  ],
241
  ],
242
  'html5' => [
243
- 'name' => 'mp4 or webm video files',
244
  'aspect_ratio' => false,
245
  ],
246
  'iframe' => [
247
- 'name' => 'ARVE general iframe embed',
248
- 'oembed' => false,
249
- 'embed_url' => '%s',
250
  'default_params' => '',
251
  'auto_thumbnail' => false,
252
- 'tests' => [
253
  0 => [
254
  'url' => 'https://example.com/',
255
- 'id' => 'https://example.com/',
256
  ],
257
  ],
258
  ],
259
  'ign' => [
260
- 'name' => 'IGN',
261
- 'oembed' => false,
262
- 'regex' => '#(?<id>https?://(www\\.)?ign\\.com/videos/[0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9a-z\\-]+)#i',
263
- 'embed_url' => 'https://widgets.ign.com/video/embed/content.html?url=%s',
264
  'auto_thumbnail' => false,
265
- 'tests' => [
266
  0 => [
267
  'url' => 'https://ign.com/videos/2012/03/06/mass-effect-3-video-review',
268
- 'id' => 'https://ign.com/videos/2012/03/06/mass-effect-3-video-review',
269
  ],
270
  ],
271
  ],
272
  'imdb' => [
273
- 'name' => 'IMDB',
274
  'requires_src' => true,
275
  ],
276
  'kickstarter' => [
277
- 'name' => 'Kickstarter',
278
- 'oembed' => false,
279
- 'regex' => '#https?://(www\\.)?kickstarter\\.com/projects/(?<id>[0-9a-z\\-]+/[-0-9a-z\\-]+)#i',
280
- 'embed_url' => 'https://www.kickstarter.com/projects/%s/widget/video.html',
281
  'auto_thumbnail' => false,
282
- 'tests' => [
283
  0 => [
284
  'url' => 'https://www.kickstarter.com/projects/obsidian/project-eternity?ref=discovery',
285
- 'id' => 'obsidian/project-eternity',
286
  ],
287
  1 => [
288
  'url' => 'https://www.kickstarter.com/projects/trinandtonic/friendship-postcards?ref=category_featured',
289
- 'id' => 'trinandtonic/friendship-postcards',
290
  ],
291
  ],
292
  ],
293
  'klatv' => [
294
- 'name' => 'kla.tv',
295
- 'oembed' => false,
296
- 'regex' => '#https?://(www\\.)?kla(gemauer)?.tv/(?<id>[0-9]+)#i',
297
- 'embed_url' => 'https://www.kla.tv/index.php?a=showembed&vidid=%s',
298
- 'url' => true,
299
  'auto_thumbnail' => false,
300
- 'tests' => [
301
  0 => [
302
  'url' => 'http://www.klagemauer.tv/9106',
303
- 'id' => 9106,
304
  ],
305
  1 => [
306
  'url' => 'http://www.kla.tv/9122',
307
- 'id' => 9122,
308
  ],
309
  ],
310
  ],
311
  'livestream' => [
312
- 'name' => 'Livestream.com',
313
- 'oembed' => false,
314
- 'regex' => '#https?://(www\\.)?livestream\\.com/accounts/(?<id>[0-9]+/events/[0-9]+(/videos/[0-9]+)?)#i',
315
- 'embed_url' => 'https://livestream.com/accounts/%s/player',
316
  'default_params' => 'width=1280&height=720&enableInfoAndActivity=true&defaultDrawer=&mute=false',
317
  'auto_thumbnail' => false,
318
- 'tests' => [
319
  0 => [
320
  'url' => 'https://livestream.com/accounts/23470201/events/7021166',
321
- 'id' => '23470201/events/7021166',
322
  ],
323
  1 => [
324
  'url' => 'https://livestream.com/accounts/467901/events/2015991/videos/17500857/player?width=640&height=360&enableInfo=true&defaultDrawer=&autoPlay=true&mute=false',
325
- 'id' => '467901/events/2015991/videos/17500857',
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  ],
327
  ],
328
  ],
329
  'metacafe' => [
330
- 'name' => 'Metacafe',
331
- 'oembed' => false,
332
- 'regex' => '#https?://(www\\.)?metacafe\\.com/(watch|fplayer)/(?<id>[0-9]+)#i',
333
- 'embed_url' => 'http://www.metacafe.com/embed/%s/',
334
  'auto_thumbnail' => false,
335
- 'tests' => [
336
  0 => [
337
  'url' => 'http://www.metacafe.com/watch/11433151/magical-handheld-fireballs/',
338
- 'id' => 11433151,
339
  ],
340
  1 => [
341
  'url' => 'http://www.metacafe.com/watch/11322264/everything_wrong_with_robocop_in_7_minutes/',
342
- 'id' => 11322264,
343
  ],
344
  ],
345
  ],
346
  'myspace' => [
347
- 'name' => 'myspace',
348
- 'oembed' => false,
349
- 'regex' => '#https?://(www\\.)?myspace\\.com/.+/(?<id>[0-9]+)#i',
350
- 'embed_url' => 'https://media.myspace.com/play/video/%s',
351
  'auto_thumbnail' => false,
352
- 'tests' => [
353
  0 => [
354
  'url' => 'https://myspace.com/myspace/video/dark-rooms-the-shadow-that-looms-o-er-my-heart-live-/109471212',
355
- 'id' => 109471212,
356
  ],
357
  ],
358
  ],
359
  'ooyala' => [
360
- 'name' => 'ooyala',
361
  'requires_src' => true,
362
  ],
363
  'qq' => [
364
- 'name' => 'v.qq.com',
365
- 'oembed' => false,
366
- 'regex' => '#https?://v\.qq\.com/.+?(?<id>[a-z0-9]+).html#i',
367
- 'embed_url' => 'https://v.qq.com/txp/iframe/player.html?vid=%s',
368
  'auto_thumbnail' => false,
369
- 'tests' => [
370
  0 => [
371
  'url' => 'https://v.qq.com/x/page/u0863pgoecf.html',
372
- 'id' => 'u0863pgoecf',
373
  ],
374
  1 => [
375
  'url' => 'https://v.qq.com/x/cover/zf2z0xpqcculhcz/y0016tj0qvh.html',
376
- 'id' => 'y0016tj0qvh',
377
  ],
378
  ],
379
  ],
380
  'rumble' => [
381
- 'name' => 'Rumble.com',
382
- 'oembed' => false,
383
- 'regex' => '#https://rumble\\.com/(embed/)?(?<id>[^-/]+)#i',
384
- 'embed_url' => 'https://rumble.com/embed/%s/',
385
  'default_params' => '',
386
  'auto_thumbnail' => true,
387
- 'auto_title' => true,
388
- 'tests' => [
389
  0 => [
390
  'url' => 'https://rumble.com/vd6thp-gigantic-galapagos-tortoise-casually-strolls-through-a-restaurant.html',
391
- 'id' => 'vd6thp',
392
  ],
393
  1 => [
394
  'url' => 'https://rumble.com/ve2ez5-airplane-returns-to-denver-after-engine-malfunction.html?foo=bar',
395
- 'id' => 've2ez5',
396
  ],
397
  ],
398
  ],
399
  'rutube' => [
400
- 'name' => 'RuTube.ru',
401
- 'oembed' => false,
402
- 'regex' => '#https?://(www\\.)?rutube\\.ru/play/embed/(?<id>[0-9]+)#i',
403
- 'embed_url' => 'https://rutube.ru/play/embed/%s',
404
- 'tests' => [
405
  0 => [
406
  'url' => 'https://rutube.ru/play/embed/9822149',
407
- 'id' => '9822149',
408
  ],
409
  ],
410
  'embed_codes' => [
411
  0 => [
412
- 'url' => 'https://rutube.ru/video/0c24c646267beb3091a52c43a46214b5/',
413
  'code' => '<iframe width="720" height="405" src="//rutube.ru/play/embed/9822149" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>',
414
  ],
415
  ],
416
  ],
417
  'snotr' => [
418
- 'name' => 'Snotr',
419
- 'oembed' => false,
420
- 'regex' => '#https?://(www\\.)?snotr\\.com/(video|embed)/(?<id>[0-9]+)#i',
421
- 'embed_url' => 'https://www.snotr.com/embed/%s',
422
- 'rebuild_url' => 'https://www.snotr.com/video/%s',
423
  'auto_thumbnail' => false,
424
- 'tests' => [
425
  0 => [
426
  'url' => 'https://www.snotr.com/video/12314/How_big_a_truck_blind_spot_really_is',
427
- 'id' => 12314,
428
  ],
429
  ],
430
  ],
431
  'ted' => [
432
- 'name' => 'TED Talks',
433
- 'oembed' => true,
434
- 'regex' => '#https?://(www\\.)?ted\\.com/talks/(?<id>[a-z0-9_]+)#i',
435
- 'embed_url' => 'https://embed.ted.com/talks/%s',
436
- 'rebuild_url' => 'https://www.ted.com/talks/%s.html',
437
  'auto_thumbnail' => true,
438
- 'auto_title' => true,
439
- 'tests' => [
440
  0 => [
441
  'url' => 'https://www.ted.com/talks/sam_harris_can_we_build_ai_without_losing_control_over_it',
442
- 'id' => 'sam_harris_can_we_build_ai_without_losing_control_over_it',
443
  ],
444
  ],
445
  ],
446
  'twitch' => [
447
- 'name' => 'Twitch',
448
- 'oembed' => false,
449
- 'regex' => '#https?://(www\\.)?twitch.tv/(?!directory)(?|[a-z0-9_]+/v/(?<id>[0-9]+)|(?<id>[a-z0-9_]+))#i',
450
- 'embed_url' => 'https://player.twitch.tv/?channel=%s',
451
  'auto_thumbnail' => true,
452
- 'tests' => [
453
  0 => [
454
- 'url' => 'https://www.twitch.tv/whiskeyexperts',
455
- 'id' => 'whiskeyexperts',
456
  'api_img_contains' => 'https://static-cdn.jtvnw.net/jtv_user_pictures/whiskyexperts',
457
  ],
458
  1 => [
459
- 'url' => 'https://www.twitch.tv/imaqtpie',
460
- 'id' => 'imaqtpie',
461
  'api_img' => 'https://static-cdn.jtvnw.net/jtv_user_pictures/imaqtpie',
462
  ],
463
  2 => [
464
- 'url' => 'https://www.twitch.tv/imaqtpie/v/95318019',
465
- 'id' => 95318019,
466
  'api_img' => 'https://static-cdn.jtvnw.net/jtv_user_pictures/imaqtpie',
467
  ],
468
  ],
469
  ],
470
  'viddler' => [
471
- 'name' => 'Viddler',
472
- 'oembed' => false,
473
- 'regex' => '#https?://(www\\.)?viddler\\.com/(embed|v)/(?<id>[a-z0-9]{8})#i',
474
- 'embed_url' => 'https://www.viddler.com/embed/%s/',
475
- 'rebuild_url' => 'https://www.viddler.com/v/%s/',
476
  'default_params' => 'f=1&player=full&disablebackwardseek=false&disableseek=false&disableforwardseek=false&make_responsive=true&loop=false&nologo=true',
477
  'auto_thumbnail' => true,
478
- 'auto_title' => true,
479
- 'aspect_ratio' => '545:349',
480
- 'tests' => [
481
  0 => [
482
  'url' => 'https://www.viddler.com/v/a695c468',
483
- 'id' => 'a695c468',
484
  ],
485
  ],
486
  ],
487
  'vimeo' => [
488
- 'name' => 'Vimeo',
489
- 'oembed' => true,
490
- 'regex' => '#https?://(player\\.)?vimeo\\.com/((video/)|(channels/[a-z]+/)|(groups/[a-z]+/videos/))?(?<id>[0-9]+)(?<vimeo_secret>/[0-9a-z]+)?#i',
491
- 'embed_url' => 'https://player.vimeo.com/video/%s',
492
- 'rebuild_url' => 'https://vimeo.com/%s',
493
  'default_params' => 'html5=1&title=1&byline=0&portrait=0',
494
  'auto_thumbnail' => true,
495
- 'auto_title' => true,
496
- 'tests' => [
497
  0 => [
498
  'url' => 'https://vimeo.com/124400795',
499
- 'id' => 124400795,
500
  ],
501
  1 => [
502
  'url' => 'https://player.vimeo.com/video/265932452',
503
- 'id' => 265932452,
504
  ],
505
  ],
506
  ],
507
  'vk' => [
508
- 'name' => 'VK',
509
- 'oembed' => false,
510
- 'regex' => '#https?://(www\\.)?vk\\.com/video_ext\\.php\\?(?<id>[^ ]+)#i',
511
- 'embed_url' => 'https://vk.com/video_ext.php?%s',
512
- 'rebuild_url' => 'https://vk.com/video_ext.php?%s',
513
- 'requires_src' => true,
514
  'auto_thumbnail' => false,
515
- 'tests' => [
516
  0 => [
517
  'url' => 'https://vk.com/video_ext.php?oid=162756656&id=171388096&hash=b82cc24232fe7f9f&hd=1',
518
- 'id' => 'oid=162756656&id=171388096&hash=b82cc24232fe7f9f&hd=1',
519
  ],
520
  ],
521
- 'embed_codes' => [
522
  0 => [
523
- 'url' => 'https://vk.com/just_vid?z=video-51189706_456247608%2Fe148d26229c2e82bd9%2Fpl_wall_-51189706',
524
  'code' => '<iframe src="https://vk.com/video_ext.php?oid=-51189706&id=456247608&hash=8256b948f3f020fd" width="640" height="360" frameborder="0" allowfullscreen></iframe>',
525
  ],
526
  ],
527
  ],
528
  'wistia' => [
529
- 'name' => 'Wistia',
530
- 'oembed' => true,
531
- 'regex' => '#https?://([a-z0-9.-]+)wistia\\.(net|com)/(medias|embed/iframe)/(?<id>[a-z0-9]+)#i',
532
- 'embed_url' => 'https://fast.wistia.net/embed/iframe/%s',
533
  'default_params' => '',
534
- 'tests' => [
535
  0 => [
536
  'url' => 'https://fast.wistia.net/embed/iframe/g5pnf59ala',
537
- 'id' => 'g5pnf59ala',
538
  ],
539
  1 => [
540
  'url' => 'https://how-2-drive.wistia.com/medias/fi1rqe3kiy',
541
- 'id' => 'fi1rqe3kiy',
542
  ],
543
  ],
544
  ],
545
  'xtube' => [
546
- 'name' => 'XTube',
547
- 'oembed' => false,
548
- 'regex' => '#https?://(www\\.)?xtube\\.com/watch\\.php\\?v=(?<id>[a-z0-9_\\-]+)#i',
549
- 'embed_url' => 'http://www.xtube.com/embedded/user/play.php?v=%s',
550
  'auto_thumbnail' => false,
551
- 'tests' => [
552
  0 => [
553
  'url' => 'http://www.xtube.com/watch.php?v=1234',
554
- 'id' => 1234,
555
  ],
556
  ],
557
  ],
558
  'yahoo' => [
559
- 'name' => 'Yahoo',
560
- 'oembed' => false,
561
- 'regex' => '#(?<id>https?://([a-z.]+)yahoo\\.com/[/-a-z0-9öäü]+\\.html)#i',
562
- 'embed_url' => '%s',
563
  'default_params' => 'format=embed',
564
  'auto_thumbnail' => true,
565
- 'auto_title' => true,
566
- 'tests' => [
567
  0 => [
568
  'url' => 'https://de.sports.yahoo.com/video/krasse-vorher-nachher-bilder-mann-094957265.html?format=embed&player_autoplay=false',
569
- 'id' => 'https://de.sports.yahoo.com/video/krasse-vorher-nachher-bilder-mann-094957265.html',
570
  ],
571
  1 => [
572
  'url' => 'https://www.yahoo.com/movies/sully-trailer-4-211012511.html?format=embed',
573
- 'id' => 'https://www.yahoo.com/movies/sully-trailer-4-211012511.html',
574
  ],
575
  ],
576
  ],
577
  'youku' => [
578
- 'name' => 'Youku',
579
- 'oembed' => false,
580
- 'regex' => '#https?://([a-z.]+)?\\.youku.com/(embed/|v_show/id_)(?<id>[a-z0-9]+)#i',
581
- 'embed_url' => 'https://player.youku.com/embed/%s',
582
  'auto_thumbnail' => false,
583
- 'aspect_ratio' => '450:292.5',
584
- 'tests' => [
585
  0 => [
586
  'url' => 'https://v.youku.com/v_show/id_XMTczMDAxMjIyNA==.html?f=27806190',
587
- 'id' => 'XMTczMDAxMjIyNA',
588
  ],
589
  1 => [
590
  'url' => 'https://player.youku.com/embed/XMTUyODYwOTc4OA==',
591
- 'id' => 'XMTUyODYwOTc4OA',
592
  ],
593
  ],
594
  ],
595
  'youtube' => [
596
- 'name' => 'YouTube',
597
- 'oembed' => true,
598
- 'regex' => '#https?://(www\\.)?(youtube\\.com\\/\\S*((\\/e(mbed))?\\/|watch\\?(\\S*?&?v\\=))|youtu\\.be\\/)(?<id>[a-zA-Z0-9_-]{6,11})#i',
599
- 'embed_url' => 'https://www.youtube.com/embed/%s',
600
- 'rebuild_url' => 'https://www.youtube.com/watch?v=%s',
601
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=0',
602
  'auto_thumbnail' => true,
603
- 'auto_title' => true,
604
- 'tests' => [
605
  1 => [
606
  'url' => 'https://www.youtube.com/watch?v=-fEo3kgHFaw',
607
- 'id' => '-fEo3kgHFaw',
608
  ],
609
  2 => [
610
  'url' => 'https://www.youtube.com/watch?time_continue=1&v=uYADic1PloY&feature=emb_logo',
611
- 'id' => 'uYADic1PloY',
612
  ],
613
  4 => [
614
  'url' => 'https://youtu.be/hRonZ4wP8Ys',
615
- 'id' => 'hRonZ4wP8Ys',
616
  ],
617
  5 => [
618
  'url' => 'http://www.youtube.com/watch?v=GjL82KUHVb0&list=PLI46g-I12_9qGBq-4epxOay0hotjys5iA&index=10',
619
- 'id' => 'GjL82KUHVb0&list=PLI46g-I12_9qGBq-4epxOay0hotjys5iA',
620
  ],
621
  6 => [
622
  'url' => 'https://youtu.be/b8m9zhNAgKs?list=PLI_7Mg2Z_-4I-W_lI55D9lBUkC66ftHMg',
623
- 'id' => 'b8m9zhNAgKs?list=PLI_7Mg2Z_-4I-W_lI55D9lBUkC66ftHMg',
624
  ],
625
  ],
626
  'specific_tests' => [
627
- 0 => null,
628
- 1 => 'http://youtu.be/3Y8B93r2gKg',
629
- 2 => null,
630
- 3 => 'http://www.youtube.com/watch?v=GjL82KUHVb0&list=PLI46g-I12_9qGBq-4epxOay0hotjys5iA&index=10',
631
- 4 => null,
632
- 5 => '[youtube id="FKkejo2dMV4" parameters="playlist=FKkejo2dMV4&loop=1"]',
633
- 6 => null,
634
- 7 => '[youtube id="uCQXKYPiz6M" parameters="iv_load_policy=1"]',
635
- 8 => null,
636
- 9 => 'http://youtu.be/vrXgLhkv21Y?t=1h19m14s',
637
  10 => 'http://youtu.be/vrXgLhkv21Y?t=19m14s',
638
  11 => 'http://youtu.be/vrXgLhkv21Y?t=1h',
639
  12 => 'http://youtu.be/vrXgLhkv21Y?t=5m',
640
  13 => 'http://youtu.be/vrXgLhkv21Y?t=30s',
641
- 14 => null,
642
  15 => '[youtube id="uCQXKYPiz6M" parameters="start=61"]',
643
  ],
644
  ],
645
  'youtubelist' => [
646
- 'oembed' => true,
647
- 'regex' => '#https?://(www\\.)?youtube\\.com/(embed/videoseries|playlist)\\?list=(?<id>[-_a-z0-9]+)#i',
648
- 'name' => 'YouTube Playlist',
649
- 'embed_url' => 'https://www.youtube.com/embed/videoseries?list=%s',
650
- 'rebuild_url' => 'https://www.youtube.com/watch?list=%s',
651
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=0',
652
  'auto_thumbnail' => true,
653
- 'tests' => [
654
  0 => [
655
  'url' => 'https://www.youtube.com/playlist?list=PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
656
- 'id' => 'PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
657
  ],
658
  1 => [
659
  'url' => 'https://www.youtube.com/watch?list=PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk&v=cyoffsDl4Hw',
660
- 'id' => 'PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
661
  ],
662
  ],
663
  ],
664
- ];
1
  <?php return [
2
  'alugha' => [
3
+ 'name' => 'Alugha',
4
+ 'regex' => '#https?://(www\\.)?alugha\\.com/(1/)?videos/(?<id>[a-z0-9_\\-]+)#i',
5
+ 'oembed' => false,
6
+ 'embed_url' => 'https://alugha.com/embed/web-player/?v=%s',
7
  'default_params' => 'nologo=1',
8
  'auto_thumbnail' => true,
9
+ 'tests' => [
10
  0 => [
11
  'url' => 'https://alugha.com/videos/056c3560-801c-11ec-acb8-cf7ea315aa57/share',
12
+ 'id' => '056c3560-801c-11ec-acb8-cf7ea315aa57',
13
  ],
14
  1 => [
15
  'url' => 'https://alugha.com/videos/e5ddd7d0-6b7c-11eb-b741-7b3016ed7f90',
16
+ 'id' => 'e5ddd7d0-6b7c-11eb-b741-7b3016ed7f90',
17
  ],
18
  ],
19
  ],
20
  'archiveorg' => [
21
+ 'name' => 'Archive.org',
22
+ 'oembed' => false,
23
+ 'regex' => '#https?://(www\\.)?archive\\.org/(details|embed)/(?<id>[0-9a-z\\-]+)#i',
24
+ 'embed_url' => 'https://www.archive.org/embed/%s/',
25
  'default_params' => '',
26
  'auto_thumbnail' => false,
27
+ 'tests' => [
28
  0 => [
29
  'url' => 'https://archive.org/details/arashyekt4_gmail_Cat',
30
+ 'id' => 'arashyekt4',
31
  ],
32
  ],
33
  ],
34
  'bannedvideo' => [
35
+ 'name' => 'Banned.video',
36
+ 'oembed' => false,
37
+ 'regex' => '#https://banned\\.video/watch\\?id=(?<id>[a-z0-9]+)#i',
38
  'embed_url' => 'https://api.banned.video/embed/%s',
39
+ 'tests' => [
40
  0 => [
41
  'url' => 'https://banned.video/watch?id=5ffe509f0d763c3dca0e8ad7',
42
+ 'id' => '5ffe509f0d763c3dca0e8ad7',
43
  ],
44
  ],
45
  ],
46
  'bitchute' => [
47
+ 'name' => 'Bitchute',
48
+ 'oembed' => false,
49
+ 'regex' => '#https?://www\\.bitchute\\.com/(video|embed)/(?<id>[0-9a-z\\-]+)#i',
50
+ 'embed_url' => 'https://www.bitchute.com/embed/%s/',
51
+ 'rebuild_url' => 'https://www.bitchute.com/video/%s/',
52
  'default_params' => '',
53
  'auto_thumbnail' => false,
54
+ 'tests' => [
55
  0 => [
56
  'url' => 'https://www.bitchute.com/video/eCctkmPpK8tq/',
57
+ 'id' => 'eCctkmPpK8tq',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  ],
59
  ],
60
  ],
61
  'brightcove' => [
62
+ 'name' => 'Brightcove',
63
+ 'regex' => '#https?://(players|link)\\.brightcove\\.net/(?<account_id>[0-9]+)/(?<brightcove_player>[a-z0-9]+)_(?<brightcove_embed>[a-z0-9]+)/index\\.html\\?videoId=(?<id>[0-9]+)#i',
64
+ 'oembed' => false,
65
+ 'embed_url' => 'https://players.brightcove.net/%s/%s_%s/index.html?videoId=%s',
66
  'requires_src' => true,
67
+ 'tests' => [
68
  0 => [
69
+ 'url' => 'https://players.brightcove.net/624246174001/BJXA5Px6f_default/index.html?videoId=5809251338001',
70
+ 'account_id' => 624246174001,
71
  'brightcove_player' => 'BJXA5Px6f',
72
+ 'brightcove_embed' => 'default',
73
+ 'id' => 5809251338001,
74
  ],
75
  1 => [
76
+ 'url' => 'http://players.brightcove.net/1160438696001/default_default/index.html?videoId=4587535845001',
77
+ 'account_id' => 1160438696001,
78
  'brightcove_player' => 'default',
79
+ 'brightcove_embed' => 'default',
80
+ 'id' => 4587535845001,
81
  ],
82
  2 => [
83
+ 'url' => 'http://players.brightcove.net/5107476400001/B1xUkhW8i_default/index.html?videoId=5371391223001',
84
+ 'account_id' => 5107476400001,
85
  'brightcove_player' => 'B1xUkhW8i',
86
+ 'brightcove_embed' => 'default',
87
+ 'id' => 5371391223001,
88
  ],
89
  ],
90
  ],
91
  'brighteon' => [
92
+ 'name' => 'Brighteon',
93
+ 'regex' => '#https?://(www)\\.brighteon\\.com/(?<id>[a-z0-9-]+)#i',
94
+ 'oembed' => false,
95
+ 'embed_url' => 'https://www.brighteon.com/embed/%s/',
96
  'requires_src' => false,
97
+ 'tests' => [
98
  0 => [
99
  'url' => 'https://www.brighteon.com/e7d18308-7cae-4a04-8a42-7088a8bea02c',
100
+ 'id' => 'e7d18308-7cae-4a04-8a42-7088a8bea02c',
101
  ],
102
  ],
103
  ],
104
  'cantcensortruthcom' => [
105
+ 'name' => 'cantcensortruth.com',
106
+ 'oembed' => false,
107
+ 'regex' => '#https://cantcensortruth\\.com/watch\\?id=(?<id>[a-z0-9]+)#i',
108
  'embed_url' => 'https://api.banned.video/embed/%s',
109
+ 'tests' => [
110
  0 => [
111
  'url' => 'https://cantcensortruth.com/watch?id=601218b0de226411596203ae',
112
+ 'id' => '601218b0de226411596203ae',
113
  ],
114
  ],
115
  ],
116
  'comedycentral' => [
117
+ 'name' => 'Comedy Central',
118
+ 'oembed' => false,
119
+ 'regex' => '#https?://media\\.mtvnservices\\.com/embed/mgid:arc:video:comedycentral\\.com:(?<id>[-a-z0-9]{36})#i',
120
+ 'embed_url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:%s',
121
+ 'requires_src' => true,
122
  'auto_thumbnail' => false,
123
+ 'tests' => [
124
  0 => [
125
  'url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:c80adf02-3e24-437a-8087-d6b77060571c',
126
+ 'id' => 'c80adf02-3e24-437a-8087-d6b77060571c',
127
  ],
128
  1 => [
129
  'url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:c3c1da76-96c2-48b4-b38d-8bb16fbf7a58',
130
+ 'id' => 'c3c1da76-96c2-48b4-b38d-8bb16fbf7a58',
131
  ],
132
  ],
133
  ],
134
  'dailymotion' => [
135
+ 'name' => 'Dailymotion',
136
+ 'oembed' => true,
137
+ 'regex' => '#https?://(www\\.)?(dai\\.ly|dailymotion\\.com/video)/(?<id>[a-z0-9]+)#i',
138
+ 'embed_url' => 'https://www.dailymotion.com/embed/video/%s',
139
+ 'rebuild_url' => 'https://www.dailymotion.com/video/%s',
140
  'default_params' => 'logo=0&hideInfos=1&related=0',
141
  'auto_thumbnail' => true,
142
+ 'auto_title' => true,
143
+ 'tests' => [
144
  0 => [
145
  'url' => 'https://www.dailymotion.com/video/x84qh50',
146
+ 'id' => 'x84qh50',
147
  ],
148
  1 => [
149
  'url' => 'https://dai.ly/x84qh50',
150
+ 'id' => 'x84qh50',
151
  ],
152
  ],
153
  ],
154
  'dailymotion_playlist' => [
155
+ 'name' => 'Dailymotion Playlist',
156
+ 'oembed' => false,
157
+ 'regex' => '#https?://(www\\.)?dailymotion\\.com/playlist/(?<id>[a-z0-9]+)#i',
158
+ 'embed_url' => 'https://www.dailymotion.com/embed/playlist/%s',
159
  'auto_thumbnail' => false,
160
+ 'tests' => [
161
  0 => [
162
  'url' => 'http://www.dailymotion.com/playlist/x3yk8p_PHIL-MDS_nature-et-environnement-2011/1#video=xm3x45',
163
+ 'id' => 'x3yk8p',
164
  ],
165
  ],
166
  ],
167
  'dtube' => [
168
+ 'name' => 'DTube',
169
+ 'oembed' => false,
170
+ 'regex' => '%https?://d\\.tube(/#!)?/v/(?<id>[^"]+)%i',
171
  'embed_url' => 'https://emb.d.tube/#!/%s',
172
+ 'tests' => [
173
  0 => [
174
  'url' => 'https://d.tube/#!/v/exyle/bgc244pb',
175
+ 'id' => 'exyle/bgc244pb',
176
  ],
177
  ],
178
  ],
179
  'facebook' => [
180
+ 'name' => 'Facebook',
181
+ 'oembed' => false,
182
+ 'regex' => '#(?<id>https?://([a-z]+\\.)?facebook\\.com/[-.a-z0-9]+/videos/[^\\s]+)#i',
183
+ 'url_encode_id' => true,
184
+ 'embed_url' => 'https://www.facebook.com/plugins/video.php?href=%s',
185
  'auto_thumbnail' => false,
186
+ 'tests' => [
187
  0 => [
188
  'url' => 'https://www.facebook.com/TheKillingsOfTonyBlair/videos/vb.551089058285349/562955837098671/?type=2&theater',
189
+ 'id' => 'https://www.facebook.com/TheKillingsOfTonyBlair/videos/vb.551089058285349/562955837098671/?type=2&theater',
190
  ],
191
  1 => [
192
  'url' => 'https://web.facebook.com/XTvideo/videos/10153906059711871/',
193
+ 'id' => 'https://web.facebook.com/XTvideo/videos/10153906059711871/',
194
  ],
195
  ],
196
  ],
197
  'gab' => [
198
+ 'name' => 'Gab TV',
199
+ 'oembed' => false,
200
+ 'regex' => '#https?://tv\\.gab\\.com/channel/(?<account_id>[a-z0-9]+)/(view|embed)/(?<id>[^\\s/]+)#i',
201
+ 'embed_url' => 'https://tv.gab.com/channel/%s/embed/%s',
202
+ 'default_params' => '',
203
+ 'tests' => [
204
+ 0 => [
205
+ 'url' => 'https://tv.gab.com/channel/owenbenjamin/view/1190-live-with-curtis-stone-the-60fb935386d788cd4a48c43a',
206
  'channel' => 'owenbenjamin',
207
+ 'id' => '1190-live-with-curtis-stone-the-60fb935386d788cd4a48c43a',
208
  ],
209
  1 => [
210
+ 'url' => 'https://tv.gab.com/channel/realalexjones/embed/doctor-exposes-covid-vaccine-attacking-blood-6155ff91153e0a6ab9e5ef93',
211
  'channel' => 'owenbenjamin',
212
+ 'id' => 'doctor-exposes-covid-vaccine-attacking-blood-6155ff91153e0a6ab9e5ef93',
213
  ],
214
  ],
215
  ],
216
  'googledrive' => [
217
+ 'name' => 'Google Drive',
218
+ 'oembed' => false,
219
+ 'regex' => '#https?://drive\\.google\\.com/file/d/(?<id>[^\\s/]+)#i',
220
  'embed_url' => 'https://drive.google.com/file/d/%s/preview',
221
+ 'tests' => [
222
  0 => [
223
  'url' => 'https://drive.google.com/file/d/0BymXD1aD6QzJWkh4Q0hPRWlPYkk/edit',
224
+ 'id' => '0BymXD1aD6QzJWkh4Q0hPRWlPYkk',
225
  ],
226
  ],
227
  ],
228
  'html5' => [
229
+ 'name' => 'mp4 or webm video files',
230
  'aspect_ratio' => false,
231
  ],
232
  'iframe' => [
233
+ 'name' => 'ARVE general iframe embed',
234
+ 'oembed' => false,
235
+ 'embed_url' => '%s',
236
  'default_params' => '',
237
  'auto_thumbnail' => false,
238
+ 'tests' => [
239
  0 => [
240
  'url' => 'https://example.com/',
241
+ 'id' => 'https://example.com/',
242
  ],
243
  ],
244
  ],
245
  'ign' => [
246
+ 'name' => 'IGN',
247
+ 'oembed' => false,
248
+ 'regex' => '#(?<id>https?://(www\\.)?ign\\.com/videos/[0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9a-z\\-]+)#i',
249
+ 'embed_url' => 'https://widgets.ign.com/video/embed/content.html?url=%s',
250
  'auto_thumbnail' => false,
251
+ 'tests' => [
252
  0 => [
253
  'url' => 'https://ign.com/videos/2012/03/06/mass-effect-3-video-review',
254
+ 'id' => 'https://ign.com/videos/2012/03/06/mass-effect-3-video-review',
255
  ],
256
  ],
257
  ],
258
  'imdb' => [
259
+ 'name' => 'IMDB',
260
  'requires_src' => true,
261
  ],
262
  'kickstarter' => [
263
+ 'name' => 'Kickstarter',
264
+ 'oembed' => false,
265
+ 'regex' => '#https?://(www\\.)?kickstarter\\.com/projects/(?<id>[0-9a-z\\-]+/[-0-9a-z\\-]+)#i',
266
+ 'embed_url' => 'https://www.kickstarter.com/projects/%s/widget/video.html',
267
  'auto_thumbnail' => false,
268
+ 'tests' => [
269
  0 => [
270
  'url' => 'https://www.kickstarter.com/projects/obsidian/project-eternity?ref=discovery',
271
+ 'id' => 'obsidian/project-eternity',
272
  ],
273
  1 => [
274
  'url' => 'https://www.kickstarter.com/projects/trinandtonic/friendship-postcards?ref=category_featured',
275
+ 'id' => 'trinandtonic/friendship-postcards',
276
  ],
277
  ],
278
  ],
279
  'klatv' => [
280
+ 'name' => 'kla.tv',
281
+ 'oembed' => false,
282
+ 'regex' => '#https?://(www\\.)?kla(gemauer)?.tv/(?<id>[0-9]+)#i',
283
+ 'embed_url' => 'https://www.kla.tv/index.php?a=showembed&vidid=%s',
284
+ 'url' => true,
285
  'auto_thumbnail' => false,
286
+ 'tests' => [
287
  0 => [
288
  'url' => 'http://www.klagemauer.tv/9106',
289
+ 'id' => 9106,
290
  ],
291
  1 => [
292
  'url' => 'http://www.kla.tv/9122',
293
+ 'id' => 9122,
294
  ],
295
  ],
296
  ],
297
  'livestream' => [
298
+ 'name' => 'Livestream.com',
299
+ 'oembed' => false,
300
+ 'regex' => '#https?://(www\\.)?livestream\\.com/accounts/(?<id>[0-9]+/events/[0-9]+(/videos/[0-9]+)?)#i',
301
+ 'embed_url' => 'https://livestream.com/accounts/%s/player',
302
  'default_params' => 'width=1280&height=720&enableInfoAndActivity=true&defaultDrawer=&mute=false',
303
  'auto_thumbnail' => false,
304
+ 'tests' => [
305
  0 => [
306
  'url' => 'https://livestream.com/accounts/23470201/events/7021166',
307
+ 'id' => '23470201/events/7021166',
308
  ],
309
  1 => [
310
  'url' => 'https://livestream.com/accounts/467901/events/2015991/videos/17500857/player?width=640&height=360&enableInfo=true&defaultDrawer=&autoPlay=true&mute=false',
311
+ 'id' => '467901/events/2015991/videos/17500857',
312
+ ],
313
+ ],
314
+ ],
315
+ 'mailru' => [
316
+ 'name' => 'Mail.ru',
317
+ 'oembed' => false,
318
+ 'regex' => '#https?://my\\.mail\\.ru/video/embed/(?<id>[0-9]+)#i',
319
+ 'embed_url' => 'https://my.mail.ru/video/embed/%s',
320
+ 'requires_src' => true,
321
+ 'tests' => [
322
+ 0 => [
323
+ 'url' => 'https://my.mail.ru/video/embed/1475383959813619758',
324
+ 'id' => 1475383959813619758,
325
  ],
326
  ],
327
  ],
328
  'metacafe' => [
329
+ 'name' => 'Metacafe',
330
+ 'oembed' => false,
331
+ 'regex' => '#https?://(www\\.)?metacafe\\.com/(watch|fplayer)/(?<id>[0-9]+)#i',
332
+ 'embed_url' => 'http://www.metacafe.com/embed/%s/',
333
  'auto_thumbnail' => false,
334
+ 'tests' => [
335
  0 => [
336
  'url' => 'http://www.metacafe.com/watch/11433151/magical-handheld-fireballs/',
337
+ 'id' => 11433151,
338
  ],
339
  1 => [
340
  'url' => 'http://www.metacafe.com/watch/11322264/everything_wrong_with_robocop_in_7_minutes/',
341
+ 'id' => 11322264,
342
  ],
343
  ],
344
  ],
345
  'myspace' => [
346
+ 'name' => 'myspace',
347
+ 'oembed' => false,
348
+ 'regex' => '#https?://(www\\.)?myspace\\.com/.+/(?<id>[0-9]+)#i',
349
+ 'embed_url' => 'https://media.myspace.com/play/video/%s',
350
  'auto_thumbnail' => false,
351
+ 'tests' => [
352
  0 => [
353
  'url' => 'https://myspace.com/myspace/video/dark-rooms-the-shadow-that-looms-o-er-my-heart-live-/109471212',
354
+ 'id' => 109471212,
355
  ],
356
  ],
357
  ],
358
  'ooyala' => [
359
+ 'name' => 'ooyala',
360
  'requires_src' => true,
361
  ],
362
  'qq' => [
363
+ 'name' => 'v.qq.com',
364
+ 'oembed' => false,
365
+ 'regex' => '#https?://v\\.qq\\.com/.+?(?<id>[a-z0-9]+).html#i',
366
+ 'embed_url' => 'https://v.qq.com/txp/iframe/player.html?vid=%s',
367
  'auto_thumbnail' => false,
368
+ 'tests' => [
369
  0 => [
370
  'url' => 'https://v.qq.com/x/page/u0863pgoecf.html',
371
+ 'id' => 'u0863pgoecf',
372
  ],
373
  1 => [
374
  'url' => 'https://v.qq.com/x/cover/zf2z0xpqcculhcz/y0016tj0qvh.html',
375
+ 'id' => 'y0016tj0qvh',
376
  ],
377
  ],
378
  ],
379
  'rumble' => [
380
+ 'name' => 'Rumble.com',
381
+ 'oembed' => false,
382
+ 'regex' => '#https://rumble\\.com/(embed/)?(?<id>[^-/]+)#i',
383
+ 'embed_url' => 'https://rumble.com/embed/%s/',
384
  'default_params' => '',
385
  'auto_thumbnail' => true,
386
+ 'auto_title' => true,
387
+ 'tests' => [
388
  0 => [
389
  'url' => 'https://rumble.com/vd6thp-gigantic-galapagos-tortoise-casually-strolls-through-a-restaurant.html',
390
+ 'id' => 'vd6thp',
391
  ],
392
  1 => [
393
  'url' => 'https://rumble.com/ve2ez5-airplane-returns-to-denver-after-engine-malfunction.html?foo=bar',
394
+ 'id' => 've2ez5',
395
  ],
396
  ],
397
  ],
398
  'rutube' => [
399
+ 'name' => 'RuTube.ru',
400
+ 'oembed' => false,
401
+ 'regex' => '#https?://(www\\.)?rutube\\.ru/play/embed/(?<id>[0-9]+)#i',
402
+ 'embed_url' => 'https://rutube.ru/play/embed/%s',
403
+ 'tests' => [
404
  0 => [
405
  'url' => 'https://rutube.ru/play/embed/9822149',
406
+ 'id' => '9822149',
407
  ],
408
  ],
409
  'embed_codes' => [
410
  0 => [
411
+ 'url' => 'https://rutube.ru/video/0c24c646267beb3091a52c43a46214b5/',
412
  'code' => '<iframe width="720" height="405" src="//rutube.ru/play/embed/9822149" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>',
413
  ],
414
  ],
415
  ],
416
  'snotr' => [
417
+ 'name' => 'Snotr',
418
+ 'oembed' => false,
419
+ 'regex' => '#https?://(www\\.)?snotr\\.com/(video|embed)/(?<id>[0-9]+)#i',
420
+ 'embed_url' => 'https://www.snotr.com/embed/%s',
421
+ 'rebuild_url' => 'https://www.snotr.com/video/%s',
422
  'auto_thumbnail' => false,
423
+ 'tests' => [
424
  0 => [
425
  'url' => 'https://www.snotr.com/video/12314/How_big_a_truck_blind_spot_really_is',
426
+ 'id' => 12314,
427
  ],
428
  ],
429
  ],
430
  'ted' => [
431
+ 'name' => 'TED Talks',
432
+ 'oembed' => true,
433
+ 'regex' => '#https?://(www\\.)?ted\\.com/talks/(?<id>[a-z0-9_]+)#i',
434
+ 'embed_url' => 'https://embed.ted.com/talks/%s',
435
+ 'rebuild_url' => 'https://www.ted.com/talks/%s.html',
436
  'auto_thumbnail' => true,
437
+ 'auto_title' => true,
438
+ 'tests' => [
439
  0 => [
440
  'url' => 'https://www.ted.com/talks/sam_harris_can_we_build_ai_without_losing_control_over_it',
441
+ 'id' => 'sam_harris_can_we_build_ai_without_losing_control_over_it',
442
  ],
443
  ],
444
  ],
445
  'twitch' => [
446
+ 'name' => 'Twitch',
447
+ 'oembed' => false,
448
+ 'regex' => '#https?://(www\\.)?twitch.tv/(?!directory)(?|[a-z0-9_]+/v/(?<id>[0-9]+)|(?<id>[a-z0-9_]+))#i',
449
+ 'embed_url' => 'https://player.twitch.tv/?channel=%s',
450
  'auto_thumbnail' => true,
451
+ 'tests' => [
452
  0 => [
453
+ 'url' => 'https://www.twitch.tv/whiskeyexperts',
454
+ 'id' => 'whiskeyexperts',
455
  'api_img_contains' => 'https://static-cdn.jtvnw.net/jtv_user_pictures/whiskyexperts',
456
  ],
457
  1 => [
458
+ 'url' => 'https://www.twitch.tv/imaqtpie',
459
+ 'id' => 'imaqtpie',
460
  'api_img' => 'https://static-cdn.jtvnw.net/jtv_user_pictures/imaqtpie',
461
  ],
462
  2 => [
463
+ 'url' => 'https://www.twitch.tv/imaqtpie/v/95318019',
464
+ 'id' => 95318019,
465
  'api_img' => 'https://static-cdn.jtvnw.net/jtv_user_pictures/imaqtpie',
466
  ],
467
  ],
468
  ],
469
  'viddler' => [
470
+ 'name' => 'Viddler',
471
+ 'oembed' => false,
472
+ 'regex' => '#https?://(www\\.)?viddler\\.com/(embed|v)/(?<id>[a-z0-9]{8})#i',
473
+ 'embed_url' => 'https://www.viddler.com/embed/%s/',
474
+ 'rebuild_url' => 'https://www.viddler.com/v/%s/',
475
  'default_params' => 'f=1&player=full&disablebackwardseek=false&disableseek=false&disableforwardseek=false&make_responsive=true&loop=false&nologo=true',
476
  'auto_thumbnail' => true,
477
+ 'auto_title' => true,
478
+ 'aspect_ratio' => '545:349',
479
+ 'tests' => [
480
  0 => [
481
  'url' => 'https://www.viddler.com/v/a695c468',
482
+ 'id' => 'a695c468',
483
  ],
484
  ],
485
  ],
486
  'vimeo' => [
487
+ 'name' => 'Vimeo',
488
+ 'oembed' => true,
489
+ 'regex' => '#https?://(player\\.)?vimeo\\.com/((video/)|(channels/[a-z]+/)|(groups/[a-z]+/videos/))?(?<id>[0-9]+)(?<vimeo_secret>/[0-9a-z]+)?#i',
490
+ 'embed_url' => 'https://player.vimeo.com/video/%s',
491
+ 'rebuild_url' => 'https://vimeo.com/%s',
492
  'default_params' => 'html5=1&title=1&byline=0&portrait=0',
493
  'auto_thumbnail' => true,
494
+ 'auto_title' => true,
495
+ 'tests' => [
496
  0 => [
497
  'url' => 'https://vimeo.com/124400795',
498
+ 'id' => 124400795,
499
  ],
500
  1 => [
501
  'url' => 'https://player.vimeo.com/video/265932452',
502
+ 'id' => 265932452,
503
  ],
504
  ],
505
  ],
506
  'vk' => [
507
+ 'name' => 'VK',
508
+ 'oembed' => false,
509
+ 'regex' => '#https?://(www\\.)?vk\\.com/video_ext\\.php\\?(?<id>[^ ]+)#i',
510
+ 'embed_url' => 'https://vk.com/video_ext.php?%s',
511
+ 'rebuild_url' => 'https://vk.com/video_ext.php?%s',
512
+ 'requires_src' => true,
513
  'auto_thumbnail' => false,
514
+ 'tests' => [
515
  0 => [
516
  'url' => 'https://vk.com/video_ext.php?oid=162756656&id=171388096&hash=b82cc24232fe7f9f&hd=1',
517
+ 'id' => 'oid=162756656&id=171388096&hash=b82cc24232fe7f9f&hd=1',
518
  ],
519
  ],
520
+ 'embed_codes' => [
521
  0 => [
522
+ 'url' => 'https://vk.com/just_vid?z=video-51189706_456247608%2Fe148d26229c2e82bd9%2Fpl_wall_-51189706',
523
  'code' => '<iframe src="https://vk.com/video_ext.php?oid=-51189706&id=456247608&hash=8256b948f3f020fd" width="640" height="360" frameborder="0" allowfullscreen></iframe>',
524
  ],
525
  ],
526
  ],
527
  'wistia' => [
528
+ 'name' => 'Wistia',
529
+ 'oembed' => true,
530
+ 'regex' => '#https?://([a-z0-9.-]+)wistia\\.(net|com)/(medias|embed/iframe)/(?<id>[a-z0-9]+)#i',
531
+ 'embed_url' => 'https://fast.wistia.net/embed/iframe/%s',
532
  'default_params' => '',
533
+ 'tests' => [
534
  0 => [
535
  'url' => 'https://fast.wistia.net/embed/iframe/g5pnf59ala',
536
+ 'id' => 'g5pnf59ala',
537
  ],
538
  1 => [
539
  'url' => 'https://how-2-drive.wistia.com/medias/fi1rqe3kiy',
540
+ 'id' => 'fi1rqe3kiy',
541
  ],
542
  ],
543
  ],
544
  'xtube' => [
545
+ 'name' => 'XTube',
546
+ 'oembed' => false,
547
+ 'regex' => '#https?://(www\\.)?xtube\\.com/watch\\.php\\?v=(?<id>[a-z0-9_\\-]+)#i',
548
+ 'embed_url' => 'http://www.xtube.com/embedded/user/play.php?v=%s',
549
  'auto_thumbnail' => false,
550
+ 'tests' => [
551
  0 => [
552
  'url' => 'http://www.xtube.com/watch.php?v=1234',
553
+ 'id' => 1234,
554
  ],
555
  ],
556
  ],
557
  'yahoo' => [
558
+ 'name' => 'Yahoo',
559
+ 'oembed' => false,
560
+ 'regex' => '#(?<id>https?://([a-z.]+)yahoo\\.com/[/-a-z0-9öäü]+\\.html)#i',
561
+ 'embed_url' => '%s',
562
  'default_params' => 'format=embed',
563
  'auto_thumbnail' => true,
564
+ 'auto_title' => true,
565
+ 'tests' => [
566
  0 => [
567
  'url' => 'https://de.sports.yahoo.com/video/krasse-vorher-nachher-bilder-mann-094957265.html?format=embed&player_autoplay=false',
568
+ 'id' => 'https://de.sports.yahoo.com/video/krasse-vorher-nachher-bilder-mann-094957265.html',
569
  ],
570
  1 => [
571
  'url' => 'https://www.yahoo.com/movies/sully-trailer-4-211012511.html?format=embed',
572
+ 'id' => 'https://www.yahoo.com/movies/sully-trailer-4-211012511.html',
573
  ],
574
  ],
575
  ],
576
  'youku' => [
577
+ 'name' => 'Youku',
578
+ 'oembed' => false,
579
+ 'regex' => '#https?://([a-z.]+)?\\.youku.com/(embed/|v_show/id_)(?<id>[a-z0-9]+)#i',
580
+ 'embed_url' => 'https://player.youku.com/embed/%s',
581
  'auto_thumbnail' => false,
582
+ 'aspect_ratio' => '450:292.5',
583
+ 'tests' => [
584
  0 => [
585
  'url' => 'https://v.youku.com/v_show/id_XMTczMDAxMjIyNA==.html?f=27806190',
586
+ 'id' => 'XMTczMDAxMjIyNA',
587
  ],
588
  1 => [
589
  'url' => 'https://player.youku.com/embed/XMTUyODYwOTc4OA==',
590
+ 'id' => 'XMTUyODYwOTc4OA',
591
  ],
592
  ],
593
  ],
594
  'youtube' => [
595
+ 'name' => 'YouTube',
596
+ 'oembed' => true,
597
+ 'regex' => '#https?://(www\\.)?(youtube\\.com\\/\\S*((\\/e(mbed))?\\/|watch\\?(\\S*?&?v\\=))|youtu\\.be\\/)(?<id>[a-zA-Z0-9_-]{6,11})#i',
598
+ 'embed_url' => 'https://www.youtube.com/embed/%s',
599
+ 'rebuild_url' => 'https://www.youtube.com/watch?v=%s',
600
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=0',
601
  'auto_thumbnail' => true,
602
+ 'auto_title' => true,
603
+ 'tests' => [
604
  1 => [
605
  'url' => 'https://www.youtube.com/watch?v=-fEo3kgHFaw',
606
+ 'id' => '-fEo3kgHFaw',
607
  ],
608
  2 => [
609
  'url' => 'https://www.youtube.com/watch?time_continue=1&v=uYADic1PloY&feature=emb_logo',
610
+ 'id' => 'uYADic1PloY',
611
  ],
612
  4 => [
613
  'url' => 'https://youtu.be/hRonZ4wP8Ys',
614
+ 'id' => 'hRonZ4wP8Ys',
615
  ],
616
  5 => [
617
  'url' => 'http://www.youtube.com/watch?v=GjL82KUHVb0&list=PLI46g-I12_9qGBq-4epxOay0hotjys5iA&index=10',
618
+ 'id' => 'GjL82KUHVb0&list=PLI46g-I12_9qGBq-4epxOay0hotjys5iA',
619
  ],
620
  6 => [
621
  'url' => 'https://youtu.be/b8m9zhNAgKs?list=PLI_7Mg2Z_-4I-W_lI55D9lBUkC66ftHMg',
622
+ 'id' => 'b8m9zhNAgKs?list=PLI_7Mg2Z_-4I-W_lI55D9lBUkC66ftHMg',
623
  ],
624
  ],
625
  'specific_tests' => [
626
+ 0 => NULL,
627
+ 1 => 'http://youtu.be/3Y8B93r2gKg',
628
+ 2 => NULL,
629
+ 3 => 'http://www.youtube.com/watch?v=GjL82KUHVb0&list=PLI46g-I12_9qGBq-4epxOay0hotjys5iA&index=10',
630
+ 4 => NULL,
631
+ 5 => '[youtube id="FKkejo2dMV4" parameters="playlist=FKkejo2dMV4&loop=1"]',
632
+ 6 => NULL,
633
+ 7 => '[youtube id="uCQXKYPiz6M" parameters="iv_load_policy=1"]',
634
+ 8 => NULL,
635
+ 9 => 'http://youtu.be/vrXgLhkv21Y?t=1h19m14s',
636
  10 => 'http://youtu.be/vrXgLhkv21Y?t=19m14s',
637
  11 => 'http://youtu.be/vrXgLhkv21Y?t=1h',
638
  12 => 'http://youtu.be/vrXgLhkv21Y?t=5m',
639
  13 => 'http://youtu.be/vrXgLhkv21Y?t=30s',
640
+ 14 => NULL,
641
  15 => '[youtube id="uCQXKYPiz6M" parameters="start=61"]',
642
  ],
643
  ],
644
  'youtubelist' => [
645
+ 'oembed' => true,
646
+ 'regex' => '#https?://(www\\.)?youtube\\.com/(embed/videoseries|playlist)\\?list=(?<id>[-_a-z0-9]+)#i',
647
+ 'name' => 'YouTube Playlist',
648
+ 'embed_url' => 'https://www.youtube.com/embed/videoseries?list=%s',
649
+ 'rebuild_url' => 'https://www.youtube.com/watch?list=%s',
650
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=0',
651
  'auto_thumbnail' => true,
652
+ 'tests' => [
653
  0 => [
654
  'url' => 'https://www.youtube.com/playlist?list=PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
655
+ 'id' => 'PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
656
  ],
657
  1 => [
658
  'url' => 'https://www.youtube.com/watch?list=PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk&v=cyoffsDl4Hw',
659
+ 'id' => 'PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
660
  ],
661
  ],
662
  ],
663
+ ];
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: YouTube, Vimeo, lazyload, thumbnail, video, responsive, embeds, video-embe
5
  Requires at least: 4.9.16
6
  Tested up to: 5.9.0
7
  Requires PHP: 5.6
8
- Stable tag: 9.7.8
9
  License: GPL-3.0
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -54,7 +54,7 @@ It is very likely the one and only plugin you will ever need to handle video emb
54
  #### Supported Providers ####
55
 
56
  [All providers with iframe embed codes](https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding)
57
- Alugha, Archive.org, Banned.video, Bitchute, Mail.ru, Brightcove, Brighteon, cantcensortruth.com, Comedy Central, Dailymotion, Dailymotion Playlist, DTube, Facebook, Gab TV, Google Drive, mp4 or webm video files, ARVE general iframe embed, IGN, IMDB, Kickstarter, kla.tv, Livestream.com, Metacafe, myspace, ooyala, v.qq.com, Rumble.com, RuTube.ru, Snotr, TED Talks, Twitch, Viddler, Vimeo, VK, Wistia, XTube, Yahoo, Youku, YouTube, YouTube Playlist
58
  ### Reviews ###
59
 
60
  #### &#9733; &#9733; &#9733; &#9733; &#9733; Great plugin, great support ####
@@ -200,6 +200,15 @@ Please read the [official documentation](https://wordpress.org/support/article/m
200
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
201
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
202
 
 
 
 
 
 
 
 
 
 
203
  ### 2022-09-04 9.7.8 ###
204
 
205
  * New: Add new 'Darken' hover effect option for Pro Addon.
5
  Requires at least: 4.9.16
6
  Tested up to: 5.9.0
7
  Requires PHP: 5.6
8
+ Stable tag: 9.7.10
9
  License: GPL-3.0
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
54
  #### Supported Providers ####
55
 
56
  [All providers with iframe embed codes](https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding)
57
+ Alugha, Archive.org, Banned.video, Bitchute, Brightcove, Brighteon, cantcensortruth.com, Comedy Central, Dailymotion, Dailymotion Playlist, DTube, Facebook, Gab TV, Google Drive, mp4 or webm video files, ARVE general iframe embed, IGN, IMDB, Kickstarter, kla.tv, Livestream.com, Mail.ru, Metacafe, myspace, ooyala, v.qq.com, Rumble.com, RuTube.ru, Snotr, TED Talks, Twitch, Viddler, Vimeo, VK, Wistia, XTube, Yahoo, Youku, YouTube, YouTube Playlist
58
  ### Reviews ###
59
 
60
  #### &#9733; &#9733; &#9733; &#9733; &#9733; Great plugin, great support ####
200
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
201
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog)
202
 
203
+ ### 2022-09-09 9.7.9 ###
204
+
205
+ ##### Improvents Gutenberg Block #####
206
+ * Introduces clickable area above the Block in the Editor.
207
+ * Fixed Thumbnail image overflowing.
208
+ * Removed maximal width setting when not aligned. This concept does not fit Gutenberg. Width should be controlled by setting the block to wide or full alignment.
209
+ * Introduces a recommended `block.json`.
210
+ * Some other minor improvements.
211
+
212
  ### 2022-09-04 9.7.8 ###
213
 
214
  * New: Add new 'Darken' hover effect option for Pro Addon.