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

Version Description

Download this release

Release Info

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

Code changes from version 9.5.2-beta3 to 9.5.3-beta1

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.5.2-beta3
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.5.2-beta3';
23
  const PRO_VERSION_REQUIRED = '5.1.11';
24
  const NUM_TRACKS = 3;
25
  const PLUGIN_FILE = __FILE__;
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.5.3-beta1
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.5.3-beta1';
23
  const PRO_VERSION_REQUIRED = '5.1.11';
24
  const NUM_TRACKS = 3;
25
  const PLUGIN_FILE = __FILE__;
changelog.md CHANGED
@@ -4,6 +4,11 @@
4
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
5
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/random-video/#changelog)
6
 
 
 
 
 
 
7
  ### 2021-02-17 9.5.2-beta1 ###
8
 
9
  * Fix: Conflict with Notice library.
4
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
5
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/random-video/#changelog)
6
 
7
+ ### 2021-02-22 9.5.3-beta1 ###
8
+
9
+ * Fix: Shortcode arguments not working in all situations.
10
+ * Removed services that went down.
11
+
12
  ### 2021-02-17 9.5.2-beta1 ###
13
 
14
  * Fix: Conflict with Notice library.
php/Common/functions-remote-get.php CHANGED
@@ -2,10 +2,13 @@
2
  namespace Nextgenthemes\ARVE\Common;
3
 
4
  // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralDomain
5
-
6
  function remote_get_json( $url, array $args = array(), $json_name = false ) {
 
 
 
 
7
 
8
- $response = remote_get_body( $url, $args );
9
 
10
  if ( is_wp_error( $response ) ) {
11
  return $response;
2
  namespace Nextgenthemes\ARVE\Common;
3
 
4
  // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralDomain
 
5
  function remote_get_json( $url, array $args = array(), $json_name = false ) {
6
+ return remote_get_json_cached( $url, $args, $json_name );
7
+ }
8
+
9
+ function remote_get_json_cached( $url, array $args = array(), $json_name = false ) {
10
 
11
+ $response = remote_get_body_cached( $url, $args );
12
 
13
  if ( is_wp_error( $response ) ) {
14
  return $response;
php/functions-assets.php CHANGED
@@ -110,7 +110,7 @@ function gutenberg_block( $args ) {
110
  }
111
  }
112
 
113
- $args['gutenberg'] = 'true';
114
 
115
  if ( isset( $args['align'] ) && in_array( $args['align'], array( 'wide', 'full' ), true ) ) {
116
  $args['align'] = null;
110
  }
111
  }
112
 
113
+ $args['origin_data']['from'] = 'gutenberg_block';
114
 
115
  if ( isset( $args['align'] ) && in_array( $args['align'], array( 'wide', 'full' ), true ) ) {
116
  $args['align'] = null;
php/functions-html-output.php CHANGED
@@ -199,8 +199,16 @@ function get_debug_info( $input_html, array $a, array $input_atts ) {
199
  }
200
 
201
  if ( isset( $_GET['arve-debug-atts'] ) ) {
202
- $html .= sprintf( '<pre style="%s">in: %s</pre>', esc_attr( $pre_style ), var_export( array_filter( $input_atts ), true ) );
203
- $html .= sprintf( '<pre style="%s">$a: %s</pre>', esc_attr( $pre_style ), var_export( array_filter( $a ), true ) );
 
 
 
 
 
 
 
 
204
  }
205
 
206
  if ( isset( $_GET['arve-debug-html'] ) ) {
199
  }
200
 
201
  if ( isset( $_GET['arve-debug-atts'] ) ) {
202
+ $html .= sprintf(
203
+ '<pre style="%s">in: %s</pre>',
204
+ esc_attr( $pre_style ),
205
+ esc_html( var_export( array_filter( $input_atts ), true ) )
206
+ );
207
+ $html .= sprintf(
208
+ '<pre style="%s">$a: %s</pre>',
209
+ esc_attr( $pre_style ),
210
+ esc_html( var_export( array_filter( $a ), true ) )
211
+ );
212
  }
213
 
214
  if ( isset( $_GET['arve-debug-html'] ) ) {
php/functions-oembed.php CHANGED
@@ -15,8 +15,8 @@ function add_oembed_providers() {
15
  function filter_oembed_dataparse( $result, $data, $url ) {
16
 
17
  if ( $data && 'video' === $data->type ) {
18
- unset($data->type);
19
  $data->arve_cachetime = gmdate('Y-m-d H:i:s');
 
20
 
21
  if ( 'YouTube' === $data->provider_name ) {
22
  $data->arve_srcset = yt_srcset( $data->thumbnail_url );
@@ -32,22 +32,40 @@ function filter_oembed_dataparse( $result, $data, $url ) {
32
  return $result;
33
  }
34
 
35
- function filter_embed_oembed_html( $cache, $url, array $attr, $post_ID ) {
36
 
37
- \preg_match( '#(?<=data-arve-oembed>).*?(?=</script>)#s', $cache, $matches );
38
 
39
- if ( ! empty( $matches[0] ) ) {
 
 
 
 
40
 
41
- $attr['oembed_data'] = json_decode( $matches[0], false, 512, JSON_UNESCAPED_UNICODE );
42
- $attr['url'] = $url;
43
- $attr['post_id'] = (string) $post_ID;
 
 
 
44
 
45
- $cache = build_video( $attr );
46
  }
47
 
48
  return $cache;
49
  }
50
 
 
 
 
 
 
 
 
 
 
 
 
51
  function yt_srcset( $url ) {
52
 
53
  $re = '@[a-z]+.jpg$@';
15
  function filter_oembed_dataparse( $result, $data, $url ) {
16
 
17
  if ( $data && 'video' === $data->type ) {
 
18
  $data->arve_cachetime = gmdate('Y-m-d H:i:s');
19
+ $data->arve_url = $url;
20
 
21
  if ( 'YouTube' === $data->provider_name ) {
22
  $data->arve_srcset = yt_srcset( $data->thumbnail_url );
32
  return $result;
33
  }
34
 
35
+ function filter_embed_oembed_html( $cache, $url, $attr, $post_ID ) {
36
 
37
+ $json = extract_oembed_json( $cache );
38
 
39
+ if ( json_last_error() !== JSON_ERROR_NONE ) {
40
+ $a['errors'] = new \WP_Error( $url . '-json-error', 'json decode error code ' . json_last_error() );
41
+ }
42
+
43
+ if ( $json ) {
44
 
45
+ $a['url'] = $url;
46
+ $a['oembed_data'] = $json;
47
+ $a['origin_data'] = [
48
+ 'from' => 'filter_embed_oembed_html',
49
+ 'post_id' => $post_ID,
50
+ ];
51
 
52
+ $cache = build_video( $a );
53
  }
54
 
55
  return $cache;
56
  }
57
 
58
+ function extract_oembed_json( $html ) {
59
+
60
+ \preg_match( '#(?<=data-arve-oembed>).*?(?=</script>)#s', $html, $matches );
61
+
62
+ if ( ! empty( $matches[0] ) ) {
63
+ return json_decode( $matches[0], false, 512, JSON_UNESCAPED_UNICODE );
64
+ }
65
+
66
+ return false;
67
+ }
68
+
69
  function yt_srcset( $url ) {
70
 
71
  $re = '@[a-z]+.jpg$@';
php/functions-settings.php CHANGED
@@ -146,9 +146,6 @@ function shortcode_pairs() {
146
  'errors' => new \WP_Error(),
147
  'id' => null,
148
  'provider' => null,
149
- 'url_handler' => null,
150
- 'legacy_sc' => null,
151
- 'gutenberg' => null,
152
  'img_srcset' => null,
153
  'maxwidth' => null, # Overwriting the option value ON PURPOSE here, see arg_maxwidth
154
  'av1mp4' => null,
@@ -157,12 +154,14 @@ function shortcode_pairs() {
157
  'webm' => null,
158
  'ogv' => null,
159
  'oembed_data' => null,
 
160
  'account_id' => null,
161
  'iframe_name' => null,
162
  'brightcove_player' => null,
163
  'brightcove_embed' => null,
164
  'video_sources_html' => null,
165
  'post_id' => null,
 
166
  )
167
  );
168
 
@@ -585,7 +584,7 @@ function all_settings() {
585
  'description' => sprintf(
586
  // Translators: URL
587
  __( 'Provider specific player settings on iframe src. See <a href="%s">documentation.</a>', 'advanced-responsive-video-embedder' ),
588
- esc_url( 'https://nextgenthemes.com/plugins/arve/documentation/#parematers' )
589
  ),
590
  ),
591
  'wp_video_override' => array(
146
  'errors' => new \WP_Error(),
147
  'id' => null,
148
  'provider' => null,
 
 
 
149
  'img_srcset' => null,
150
  'maxwidth' => null, # Overwriting the option value ON PURPOSE here, see arg_maxwidth
151
  'av1mp4' => null,
154
  'webm' => null,
155
  'ogv' => null,
156
  'oembed_data' => null,
157
+ 'origin_data' => null,
158
  'account_id' => null,
159
  'iframe_name' => null,
160
  'brightcove_player' => null,
161
  'brightcove_embed' => null,
162
  'video_sources_html' => null,
163
  'post_id' => null,
164
+ 'thumbnail_fallback' => null, # Pro
165
  )
166
  );
167
 
584
  'description' => sprintf(
585
  // Translators: URL
586
  __( 'Provider specific player settings on iframe src. See <a href="%s">documentation.</a>', 'advanced-responsive-video-embedder' ),
587
+ esc_url( 'https://nextgenthemes.com/plugins/arve/documentation/#parameters' )
588
  ),
589
  ),
590
  'wp_video_override' => array(
php/functions-shortcode-args.php CHANGED
@@ -124,26 +124,26 @@ function args_validate( array $a ) {
124
  switch ( $key ) {
125
  case 'errors':
126
  break;
127
- case 'url_handler':
128
  if ( null !== $value && ! is_array( $value ) ) {
129
- $a['errors']->add( 2, 'url_handler needs to be null or array' . $value );
130
  }
131
  break;
132
  case 'oembed_data':
133
  if ( null !== $value && ! is_object( $value ) ) {
134
- $a['errors']->add( 'oembed_data', 'oembed_data needs to be null or a object' );
135
  }
136
  break;
137
  default:
138
  if ( null !== $value && ! is_string( $value ) ) {
139
- $a['errors']->add( 2, "$key must be null or string" );
140
  }
141
  break;
142
  }
143
  }
144
 
145
- foreach ( bool_shortcode_args() as $arg ) {
146
- $a[ $arg ] = validate_bool( $a[ $arg ], $arg );
147
  };
148
 
149
  $url_args = array_merge( VIDEO_FILE_EXTENSIONS, [ 'url' ] );
@@ -176,9 +176,9 @@ function validate_url( $url, $argname, array $a ) {
176
  }
177
 
178
  // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh
179
- function validate_bool( $str, $attr_name ) {
180
 
181
- switch ( $str ) {
182
  case 'true':
183
  case '1':
184
  case 'y':
@@ -195,6 +195,8 @@ function validate_bool( $str, $attr_name ) {
195
  case 'off':
196
  return false;
197
  default:
 
 
198
  $a['errors']->add(
199
  $attr_name,
200
  // Translators: %1$s = Attr Name, %2$s = Attribute array
@@ -202,9 +204,15 @@ function validate_bool( $str, $attr_name ) {
202
  // Translators: Attribute Name
203
  __( '%1$s <code>%2$s</code> not valid', 'advanced-responsive-video-embedder' ),
204
  esc_html( $attr_name ),
205
- esc_html( $str )
206
  )
207
  );
 
 
 
 
 
 
208
  return null;
209
  }//end switch
210
  }
@@ -479,7 +487,7 @@ function compare_oembed_src_with_generated_src( $a ) {
479
  function missing_attribute_check( array $a ) {
480
 
481
  // Old shortcodes
482
- if ( $a['legacy_sc'] ) {
483
 
484
  if ( ! $a['id'] || ! $a['provider'] ) {
485
  throw new \Exception( 'need id and provider' );
124
  switch ( $key ) {
125
  case 'errors':
126
  break;
127
+ case 'origin_data':
128
  if ( null !== $value && ! is_array( $value ) ) {
129
+ $a['errors']->add( 'origin_data-type', 'origin_data needs to be null or array' . $value );
130
  }
131
  break;
132
  case 'oembed_data':
133
  if ( null !== $value && ! is_object( $value ) ) {
134
+ $a['errors']->add( 'oembed_data-type', 'oembed_data needs to be null or a object' );
135
  }
136
  break;
137
  default:
138
  if ( null !== $value && ! is_string( $value ) ) {
139
+ $a['errors']->add( 'wrong-type', "$key must be null or string" );
140
  }
141
  break;
142
  }
143
  }
144
 
145
+ foreach ( bool_shortcode_args() as $attr_name ) {
146
+ $a[ $attr_name ] = validate_bool( $attr_name, $a );
147
  };
148
 
149
  $url_args = array_merge( VIDEO_FILE_EXTENSIONS, [ 'url' ] );
176
  }
177
 
178
  // phpcs:ignore Generic.Metrics.CyclomaticComplexity.TooHigh
179
+ function validate_bool( $attr_name, $a ) {
180
 
181
+ switch ( $a[ $attr_name ] ) {
182
  case 'true':
183
  case '1':
184
  case 'y':
195
  case 'off':
196
  return false;
197
  default:
198
+ $error_code = $attr_name . ' bool-validation';
199
+
200
  $a['errors']->add(
201
  $attr_name,
202
  // Translators: %1$s = Attr Name, %2$s = Attribute array
204
  // Translators: Attribute Name
205
  __( '%1$s <code>%2$s</code> not valid', 'advanced-responsive-video-embedder' ),
206
  esc_html( $attr_name ),
207
+ esc_html( $a[ $attr_name ] )
208
  )
209
  );
210
+
211
+ $a['errors']->add_data(
212
+ compact( 'attr_name', 'a' ),
213
+ $error_code
214
+ );
215
+
216
  return null;
217
  }//end switch
218
  }
487
  function missing_attribute_check( array $a ) {
488
 
489
  // Old shortcodes
490
+ if ( ! empty( $a['origin_data']['from'] ) && 'create_shortcodes' === $a['origin_data']['from'] ) {
491
 
492
  if ( ! $a['id'] || ! $a['provider'] ) {
493
  throw new \Exception( 'need id and provider' );
php/functions-shortcodes.php CHANGED
@@ -1,17 +1,19 @@
1
  <?php
2
  namespace Nextgenthemes\ARVE;
3
 
4
- function shortcode( $a, $content = null ) {
5
 
6
  $a = (array) $a;
7
 
 
 
8
  foreach ( $a as $k => $v ) {
9
  if ( '' === $v ) {
10
  unset( $a[ $k ] );
11
  }
12
  }
13
 
14
- $override = apply_filters( 'nextgenthemes/arve/shortcode_override', '', $a, $content );
15
 
16
  if ( '' !== $override ) {
17
  return $override;
@@ -22,14 +24,23 @@ function shortcode( $a, $content = null ) {
22
 
23
  if ( ! empty( $a['url'] ) ) {
24
 
25
- $maybe_arve_html = $GLOBALS['wp_embed']->shortcode( $a, $a['url'] );
 
 
 
 
 
 
 
 
26
 
27
- if ( str_contains( $maybe_arve_html, 'class="arve' ) ) {
28
- return $maybe_arve_html;
 
29
  }
30
  }
31
 
32
- return build_video( $a, $content );
33
  }
34
 
35
  function error( $msg, $code = '' ) {
@@ -133,9 +144,10 @@ function create_shortcodes() {
133
  if ( ! empty( $properties[ $provider ]['rebuild_url'] ) && ! empty( $a['id'] ) ) {
134
  $a['url'] = sprintf( $properties[ $provider ]['rebuild_url'], $a['id'] );
135
  unset( $a['id'] );
 
136
  return shortcode( $a );
137
  } else {
138
- $a['legacy_sc'] = 'Legacy Shortcode';
139
  return build_video( $a );
140
  }
141
  };
1
  <?php
2
  namespace Nextgenthemes\ARVE;
3
 
4
+ function shortcode( $a ) {
5
 
6
  $a = (array) $a;
7
 
8
+ $a['origin_data']['from'] = 'shortcode';
9
+
10
  foreach ( $a as $k => $v ) {
11
  if ( '' === $v ) {
12
  unset( $a[ $k ] );
13
  }
14
  }
15
 
16
+ $override = apply_filters( 'nextgenthemes/arve/shortcode_override', '', $a, 'not used' );
17
 
18
  if ( '' !== $override ) {
19
  return $override;
24
 
25
  if ( ! empty( $a['url'] ) ) {
26
 
27
+ remove_filter( 'embed_oembed_html', __NAMESPACE__ . '\filter_embed_oembed_html', -5 );
28
+ $maybe_arve_html = $GLOBALS['wp_embed']->shortcode( array(), $a['url'] );
29
+ add_filter( 'embed_oembed_html', __NAMESPACE__ . '\filter_embed_oembed_html', -5, 4 );
30
+
31
+ $json = extract_oembed_json( $maybe_arve_html );
32
+
33
+ if ( json_last_error() !== JSON_ERROR_NONE ) {
34
+ $a['errors']->add( 'json-error', 'json decode error code ' . json_last_error() );
35
+ }
36
 
37
+ if ( $json ) {
38
+ $a['oembed_data'] = $json;
39
+ $a['origin_data']['from'] = 'shortcode oembed_data detected';
40
  }
41
  }
42
 
43
+ return build_video( $a );
44
  }
45
 
46
  function error( $msg, $code = '' ) {
144
  if ( ! empty( $properties[ $provider ]['rebuild_url'] ) && ! empty( $a['id'] ) ) {
145
  $a['url'] = sprintf( $properties[ $provider ]['rebuild_url'], $a['id'] );
146
  unset( $a['id'] );
147
+ $a['origin_data']['from'] = 'create_shortcodes rebuild_url';
148
  return shortcode( $a );
149
  } else {
150
+ $a['origin_data']['from'] = 'create_shortcodes';
151
  return build_video( $a );
152
  }
153
  };
php/functions-url-handlers.php CHANGED
@@ -19,19 +19,18 @@ function create_url_handlers() {
19
 
20
  function url_handler( $provider, array $matches, array $attr, $url, $rawattr ) {
21
 
22
- $info = array(
23
- 'matches' => $matches,
24
- 'attr' => $attr,
25
- 'rawattr' => $rawattr,
26
- );
27
-
28
  if ( is_array( $rawattr ) ) {
29
  $a = $rawattr;
30
  }
31
 
32
  $a['provider'] = $provider;
33
- $a['url_handler'] = $info;
34
  $a['url'] = $url;
 
 
 
 
 
 
35
 
36
  return build_video( $a );
37
  }
19
 
20
  function url_handler( $provider, array $matches, array $attr, $url, $rawattr ) {
21
 
 
 
 
 
 
 
22
  if ( is_array( $rawattr ) ) {
23
  $a = $rawattr;
24
  }
25
 
26
  $a['provider'] = $provider;
 
27
  $a['url'] = $url;
28
+ $a['origin_data'] = [
29
+ 'from' => 'url_handler',
30
+ 'matches' => $matches,
31
+ 'attr' => $attr,
32
+ 'rawattr' => $rawattr,
33
+ ];
34
 
35
  return build_video( $a );
36
  }
php/init.php CHANGED
@@ -12,7 +12,7 @@ function init_public() {
12
 
13
  add_option( 'arve_install_date', time() );
14
 
15
- if ( version_compare( get_option( 'arve_version' ), '9.5.2-beta1', '<' ) ) {
16
  $GLOBALS['wpdb']->query( "DELETE FROM {$GLOBALS['wpdb']->postmeta} WHERE meta_key LIKE '%_oembed_%'" );
17
  }
18
  update_option( 'arve_version', VERSION );
12
 
13
  add_option( 'arve_install_date', time() );
14
 
15
+ if ( version_compare( get_option( 'arve_version' ), '9.5.3-alpha1', '<' ) ) {
16
  $GLOBALS['wpdb']->query( "DELETE FROM {$GLOBALS['wpdb']->postmeta} WHERE meta_key LIKE '%_oembed_%'" );
17
  }
18
  update_option( 'arve_version', VERSION );
php/providers.php CHANGED
@@ -12,8 +12,8 @@
12
  'id' => 'e269333a-579b-11e5-aa10-8587cc892389',
13
  ],
14
  1 => [
15
- 'url' => 'https://alugha.com/1/videos/youtube-54m1YfEuYU8',
16
- 'id' => 'youtube-54m1YfEuYU8',
17
  ],
18
  2 => [
19
  'url' => 'https://alugha.com/videos/7cab9cd7-f64a-11e5-939b-c39074d29b86',
@@ -37,6 +37,7 @@
37
  ],
38
  'bannedvideo' => [
39
  'name' => 'Banned.video',
 
40
  'regex' => '#https://banned\\.video/watch\\?id=(?<id>[a-z0-9]+)#i',
41
  'embed_url' => 'https://api.banned.video/embed/%s',
42
  'tests' => [
@@ -61,30 +62,9 @@
61
  ],
62
  ],
63
  ],
64
- 'break' => [
65
- 'name' => 'Break',
66
- 'regex' => '#https?://(www\\.|view\\.)break\\.com/(video/|embed/)?[-a-z0-9]*?(?<id>[0-9]+)#i',
67
- 'oembed' => false,
68
- 'embed_url' => 'http://break.com/embed/%s',
69
- 'default_params' => 'embed=1',
70
- 'auto_thumbnail' => false,
71
- 'tests' => [
72
- 0 => [
73
- 'url' => 'https://www.break.com/video/first-person-pov-of-tornado-strike-2542591-test',
74
- 'id' => 2542591,
75
- ],
76
- 1 => [
77
- 'url' => 'http://view.break.com/2542591-test',
78
- 'id' => 2542591,
79
- ],
80
- 2 => [
81
- 'url' => 'http://www.break.com/embed/2542591?embed=1',
82
- 'id' => 2542591,
83
- ],
84
- ],
85
- ],
86
  'mailru' => [
87
  'name' => 'Mail.ru',
 
88
  'regex' => '#https?://my\\.mail\\.ru/video/embed/(?<id>[0-9]+)#i',
89
  'oembed' => false,
90
  'embed_url' => 'https://my.mail.ru/video/embed/%s',
@@ -128,6 +108,7 @@
128
  ],
129
  'cantcensortruthcom' => [
130
  'name' => 'cantcensortruth.com',
 
131
  'regex' => '#https://cantcensortruth\\.com/watch\\?id=(?<id>[a-z0-9]+)#i',
132
  'embed_url' => 'https://api.banned.video/embed/%s',
133
  'tests' => [
@@ -139,6 +120,7 @@
139
  ],
140
  'comedycentral' => [
141
  'name' => 'Comedy Central',
 
142
  'regex' => '#https?://media\\.mtvnservices\\.com/embed/mgid:arc:video:comedycentral\\.com:(?<id>[-a-z0-9]{36})#i',
143
  'embed_url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:%s',
144
  'requires_src' => true,
@@ -176,6 +158,7 @@
176
  ],
177
  'dailymotion_playlist' => [
178
  'name' => 'Dailymotion Playlist',
 
179
  'regex' => '#https?://(www\\.)?dailymotion\\.com/playlist/(?<id>[a-z0-9]+)#i',
180
  'embed_url' => 'https://www.dailymotion.com/embed/playlist/%s',
181
  'auto_thumbnail' => false,
@@ -188,7 +171,7 @@
188
  ],
189
  'dtube' => [
190
  'name' => 'DTube',
191
- 'oembed' => true,
192
  'regex' => '%https?://d\\.tube(/#!)?/v/(?<id>[^"]+)%i',
193
  'embed_url' => 'https://emb.d.tube/#!/%s',
194
  'tests' => [
@@ -218,6 +201,7 @@
218
  ],
219
  'googledrive' => [
220
  'name' => 'Google Drive',
 
221
  'regex' => '#https?://drive\\.google\\.com/file/d/(?<id>[^\\s/]+)#i',
222
  'embed_url' => 'https://drive.google.com/file/d/%s/preview',
223
  'tests' => [
@@ -233,6 +217,7 @@
233
  ],
234
  'iframe' => [
235
  'name' => 'ARVE general iframe embed',
 
236
  'embed_url' => '%s',
237
  'default_params' => '',
238
  'auto_thumbnail' => false,
@@ -245,13 +230,14 @@
245
  ],
246
  'ign' => [
247
  'name' => 'IGN',
 
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://www.ign.com/videos/2012/03/06/mass-effect-3-video-review',
254
- 'id' => 'https://www.ign.com/videos/2012/03/06/mass-effect-3-video-review',
255
  ],
256
  ],
257
  ],
@@ -261,7 +247,7 @@
261
  ],
262
  'kickstarter' => [
263
  'name' => 'Kickstarter',
264
- 'oembed' => true,
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,
@@ -278,6 +264,7 @@
278
  ],
279
  'klatv' => [
280
  'name' => 'kla.tv',
 
281
  'regex' => '#https?://(www\\.)?kla(gemauer)?.tv/(?<id>[0-9]+)#i',
282
  'embed_url' => 'https://www.kla.tv/index.php?a=showembed&vidid=%s',
283
  'url' => true,
@@ -294,16 +281,15 @@
294
  ],
295
  ],
296
  'liveleak' => [
 
 
297
  'name' => 'LiveLeak',
 
298
  'regex' => '#https?://(www\\.)?liveleak\\.com/(view|ll_embed)\\?(?<id>(f|i|t)=[0-9a-z\\_]+)#i',
299
  'embed_url' => 'https://www.liveleak.com/ll_embed?%s',
300
  'default_params' => '',
301
  'auto_thumbnail' => true,
302
  'tests' => [
303
- 0 => [
304
- 'url' => 'http://www.liveleak.com/view?i=703_1385224413',
305
- 'id' => 'i=703_1385224413',
306
- ],
307
  1 => [
308
  'url' => 'http://www.liveleak.com/view?f=c85bdf5e45b2',
309
  'id' => 'f=c85bdf5e45b2',
@@ -320,6 +306,7 @@
320
  ],
321
  'livestream' => [
322
  'name' => 'Livestream.com',
 
323
  'regex' => '#https?://(www\\.)?livestream\\.com/accounts/(?<id>[0-9]+/events/[0-9]+(/videos/[0-9]+)?)#i',
324
  'embed_url' => 'https://livestream.com/accounts/%s/player',
325
  'default_params' => 'width=1280&height=720&enableInfoAndActivity=true&defaultDrawer=&mute=false',
@@ -337,6 +324,7 @@
337
  ],
338
  'metacafe' => [
339
  'name' => 'Metacafe',
 
340
  'regex' => '#https?://(www\\.)?metacafe\\.com/(watch|fplayer)/(?<id>[0-9]+)#i',
341
  'embed_url' => 'http://www.metacafe.com/embed/%s/',
342
  'auto_thumbnail' => false,
@@ -353,6 +341,8 @@
353
  ],
354
  'myspace' => [
355
  'name' => 'myspace',
 
 
356
  'regex' => '#https?://(www\\.)?myspace\\.com/.+/(?<id>[0-9]+)#i',
357
  'embed_url' => 'https://media.myspace.com/play/video/%s',
358
  'auto_thumbnail' => false,
@@ -369,6 +359,7 @@
369
  ],
370
  'rumble' => [
371
  'name' => 'Rumble.com',
 
372
  'regex' => '#https://rumble\\.com/(embed/)?(?<id>[^-/]+)#i',
373
  'embed_url' => 'https://rumble.com/embed/%s/',
374
  'default_params' => '',
@@ -380,13 +371,14 @@
380
  'id' => 'vd6thp',
381
  ],
382
  1 => [
383
- 'url' => 'https://rumble.com/embed/vd6thp/?foo=bar',
384
- 'id' => 'vd6thp',
385
  ],
386
  ],
387
  ],
388
  'rutube' => [
389
  'name' => 'RuTube.ru',
 
390
  'regex' => '#https?://(www\\.)?rutube\\.ru/play/embed/(?<id>[0-9]+)#i',
391
  'embed_url' => 'https://rutube.ru/play/embed/%s',
392
  'tests' => [
@@ -404,6 +396,7 @@
404
  ],
405
  'snotr' => [
406
  'name' => 'Snotr',
 
407
  'regex' => '#https?://(www\\.)?snotr\\.com/(video|embed)/(?<id>[0-9]+)#i',
408
  'embed_url' => 'https://www.snotr.com/embed/%s',
409
  'rebuild_url' => 'https://www.snotr.com/video/%s',
@@ -415,19 +408,6 @@
415
  ],
416
  ],
417
  ],
418
- 'spike' => [
419
- 'name' => 'Spike',
420
- 'regex' => '#https?://media.mtvnservices.com/embed/mgid:arc:video:spike\\.com:(?<id>[a-z0-9\\-]{36})#i',
421
- 'embed_url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:spike.com:%s',
422
- 'requires_src' => true,
423
- 'auto_thumbnail' => false,
424
- 'tests' => [
425
- 0 => [
426
- 'url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:spike.com:6a219882-c412-46ce-a8c9-32e043396621',
427
- 'id' => '6a219882-c412-46ce-a8c9-32e043396621',
428
- ],
429
- ],
430
- ],
431
  'ted' => [
432
  'name' => 'TED Talks',
433
  'oembed' => true,
@@ -469,6 +449,7 @@
469
  ],
470
  'ustream' => [
471
  'name' => 'Ustream',
 
472
  'regex' => '#https?://(www\\.)?ustream\\.tv/(embed/|channel/)?(?<id>[0-9]{8}|recorded/[0-9]{8}(/highlight/[0-9]+)?)#i',
473
  'embed_url' => 'http://www.ustream.tv/embed/%s',
474
  'default_params' => 'html5ui',
@@ -487,6 +468,7 @@
487
  ],
488
  'viddler' => [
489
  'name' => 'Viddler',
 
490
  'regex' => '#https?://(www\\.)?viddler\\.com/(embed|v)/(?<id>[a-z0-9]{8})#i',
491
  'embed_url' => 'https://www.viddler.com/embed/%s/',
492
  'rebuild_url' => 'https://www.viddler.com/v/%s/',
@@ -516,13 +498,14 @@
516
  'id' => 124400795,
517
  ],
518
  1 => [
519
- 'url' => 'https://player.vimeo.com/124400795',
520
- 'id' => 124400795,
521
  ],
522
  ],
523
  ],
524
  'vk' => [
525
  'name' => 'VK',
 
526
  'regex' => '#https?://(www\\.)?vk\\.com/video_ext\\.php\\?(?<id>[^ ]+)#i',
527
  'embed_url' => 'https://vk.com/video_ext.php?%s',
528
  'rebuild_url' => 'https://vk.com/video_ext.php?%s',
@@ -541,21 +524,6 @@
541
  ],
542
  ],
543
  ],
544
- 'vzaar' => [
545
- 'name' => 'vzaar',
546
- 'regex' => '#https?://(www\\.)?vzaar.(com|tv)/(videos/)?(?<id>[0-9]+)#i',
547
- 'embed_url' => 'https://view.vzaar.com/%s/player',
548
- 'tests' => [
549
- 0 => [
550
- 'url' => 'https://vzaar.com/videos/993324',
551
- 'id' => 993324,
552
- ],
553
- 1 => [
554
- 'url' => 'https://vzaar.com/videos/1515906',
555
- 'id' => 1515906,
556
- ],
557
- ],
558
- ],
559
  'wistia' => [
560
  'name' => 'Wistia',
561
  'oembed' => true,
@@ -588,6 +556,7 @@
588
  ],
589
  'yahoo' => [
590
  'name' => 'Yahoo',
 
591
  'regex' => '#(?<id>https?://([a-z.]+)yahoo\\.com/[/-a-z0-9öäü]+\\.html)#i',
592
  'embed_url' => '%s',
593
  'default_params' => 'format=embed',
@@ -606,25 +575,25 @@
606
  ],
607
  'youku' => [
608
  'name' => 'Youku',
609
- 'regex' => '#https?://([a-z.]+)?\\.youku.com/(embed/|v_show/id_)(?<id>[a-z0-9]+)#i',
610
  'oembed' => false,
 
611
  'embed_url' => 'https://player.youku.com/embed/%s',
612
  'auto_thumbnail' => false,
613
  'aspect_ratio' => '450:292.5',
614
  'tests' => [
615
  0 => [
616
- 'url' => 'http://v.youku.com/v_show/id_XMTczMDAxMjIyNA==.html?f=27806190',
617
  'id' => 'XMTczMDAxMjIyNA',
618
  ],
619
  1 => [
620
- 'url' => 'http://player.youku.com/embed/XMTUyODYwOTc4OA==',
621
  'id' => 'XMTUyODYwOTc4OA',
622
  ],
623
  ],
624
  ],
625
  'youtube' => [
626
- 'oembed' => true,
627
  'name' => 'YouTube',
 
628
  'regex' => '#https?://(www\\.)?(youtube\\.com\\/\\S*((\\/e(mbed))?\\/|watch\\?(\\S*?&?v\\=))|youtu\\.be\\/)(?<id>[a-zA-Z0-9_-]{6,11})#i',
629
  'embed_url' => 'https://www.youtube.com/embed/%s',
630
  'rebuild_url' => 'https://www.youtube.com/watch?v=%s',
@@ -686,7 +655,7 @@
686
  'id' => 'PL3Esg-ZzbiUmeSKBAQ3ej1hQxDSsmnp-7',
687
  ],
688
  1 => [
689
- 'url' => 'https://www.youtube.com/embed/videoseries?list=PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
690
  'id' => 'PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
691
  ],
692
  ],
12
  'id' => 'e269333a-579b-11e5-aa10-8587cc892389',
13
  ],
14
  1 => [
15
+ 'url' => 'https://alugha.com/videos/e5ddd7d0-6b7c-11eb-b741-7b3016ed7f90',
16
+ 'id' => 'e5ddd7d0-6b7c-11eb-b741-7b3016ed7f90',
17
  ],
18
  2 => [
19
  'url' => 'https://alugha.com/videos/7cab9cd7-f64a-11e5-939b-c39074d29b86',
37
  ],
38
  'bannedvideo' => [
39
  'name' => 'Banned.video',
40
+ 'oembed' => false,
41
  'regex' => '#https://banned\\.video/watch\\?id=(?<id>[a-z0-9]+)#i',
42
  'embed_url' => 'https://api.banned.video/embed/%s',
43
  'tests' => [
62
  ],
63
  ],
64
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  'mailru' => [
66
  'name' => 'Mail.ru',
67
+ 'oembed' => false,
68
  'regex' => '#https?://my\\.mail\\.ru/video/embed/(?<id>[0-9]+)#i',
69
  'oembed' => false,
70
  'embed_url' => 'https://my.mail.ru/video/embed/%s',
108
  ],
109
  'cantcensortruthcom' => [
110
  'name' => 'cantcensortruth.com',
111
+ 'oembed' => false,
112
  'regex' => '#https://cantcensortruth\\.com/watch\\?id=(?<id>[a-z0-9]+)#i',
113
  'embed_url' => 'https://api.banned.video/embed/%s',
114
  'tests' => [
120
  ],
121
  'comedycentral' => [
122
  'name' => 'Comedy Central',
123
+ 'oembed' => false,
124
  'regex' => '#https?://media\\.mtvnservices\\.com/embed/mgid:arc:video:comedycentral\\.com:(?<id>[-a-z0-9]{36})#i',
125
  'embed_url' => 'http://media.mtvnservices.com/embed/mgid:arc:video:comedycentral.com:%s',
126
  'requires_src' => true,
158
  ],
159
  'dailymotion_playlist' => [
160
  'name' => 'Dailymotion Playlist',
161
+ 'oembed' => false,
162
  'regex' => '#https?://(www\\.)?dailymotion\\.com/playlist/(?<id>[a-z0-9]+)#i',
163
  'embed_url' => 'https://www.dailymotion.com/embed/playlist/%s',
164
  'auto_thumbnail' => false,
171
  ],
172
  'dtube' => [
173
  'name' => 'DTube',
174
+ 'oembed' => false,
175
  'regex' => '%https?://d\\.tube(/#!)?/v/(?<id>[^"]+)%i',
176
  'embed_url' => 'https://emb.d.tube/#!/%s',
177
  'tests' => [
201
  ],
202
  'googledrive' => [
203
  'name' => 'Google Drive',
204
+ 'oembed' => false,
205
  'regex' => '#https?://drive\\.google\\.com/file/d/(?<id>[^\\s/]+)#i',
206
  'embed_url' => 'https://drive.google.com/file/d/%s/preview',
207
  'tests' => [
217
  ],
218
  'iframe' => [
219
  'name' => 'ARVE general iframe embed',
220
+ 'oembed' => false,
221
  'embed_url' => '%s',
222
  'default_params' => '',
223
  'auto_thumbnail' => false,
230
  ],
231
  'ign' => [
232
  'name' => 'IGN',
233
+ 'oembed' => false,
234
  'regex' => '#(?<id>https?://(www\\.)?ign\\.com/videos/[0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9a-z\\-]+)#i',
235
  'embed_url' => 'https://widgets.ign.com/video/embed/content.html?url=%s',
236
  'auto_thumbnail' => false,
237
  'tests' => [
238
  0 => [
239
+ 'url' => 'https://ign.com/videos/2012/03/06/mass-effect-3-video-review',
240
+ 'id' => 'https://ign.com/videos/2012/03/06/mass-effect-3-video-review',
241
  ],
242
  ],
243
  ],
247
  ],
248
  'kickstarter' => [
249
  'name' => 'Kickstarter',
250
+ 'oembed' => false,
251
  'regex' => '#https?://(www\\.)?kickstarter\\.com/projects/(?<id>[0-9a-z\\-]+/[-0-9a-z\\-]+)#i',
252
  'embed_url' => 'https://www.kickstarter.com/projects/%s/widget/video.html',
253
  'auto_thumbnail' => false,
264
  ],
265
  'klatv' => [
266
  'name' => 'kla.tv',
267
+ 'oembed' => false,
268
  'regex' => '#https?://(www\\.)?kla(gemauer)?.tv/(?<id>[0-9]+)#i',
269
  'embed_url' => 'https://www.kla.tv/index.php?a=showembed&vidid=%s',
270
  'url' => true,
281
  ],
282
  ],
283
  'liveleak' => [
284
+ # <iframe width="640" height="360" src="//www.liveleak.com/e/9UCAQ_1613786191" frameborder="0" allowfullscreen></iframe>
285
+ # https://www.liveleak.com/view?t=svtYD_1613984945
286
  'name' => 'LiveLeak',
287
+ 'oembed' => false,
288
  'regex' => '#https?://(www\\.)?liveleak\\.com/(view|ll_embed)\\?(?<id>(f|i|t)=[0-9a-z\\_]+)#i',
289
  'embed_url' => 'https://www.liveleak.com/ll_embed?%s',
290
  'default_params' => '',
291
  'auto_thumbnail' => true,
292
  'tests' => [
 
 
 
 
293
  1 => [
294
  'url' => 'http://www.liveleak.com/view?f=c85bdf5e45b2',
295
  'id' => 'f=c85bdf5e45b2',
306
  ],
307
  'livestream' => [
308
  'name' => 'Livestream.com',
309
+ 'oembed' => false,
310
  'regex' => '#https?://(www\\.)?livestream\\.com/accounts/(?<id>[0-9]+/events/[0-9]+(/videos/[0-9]+)?)#i',
311
  'embed_url' => 'https://livestream.com/accounts/%s/player',
312
  'default_params' => 'width=1280&height=720&enableInfoAndActivity=true&defaultDrawer=&mute=false',
324
  ],
325
  'metacafe' => [
326
  'name' => 'Metacafe',
327
+ 'oembed' => false,
328
  'regex' => '#https?://(www\\.)?metacafe\\.com/(watch|fplayer)/(?<id>[0-9]+)#i',
329
  'embed_url' => 'http://www.metacafe.com/embed/%s/',
330
  'auto_thumbnail' => false,
341
  ],
342
  'myspace' => [
343
  'name' => 'myspace',
344
+ 'oembed' => false,
345
+
346
  'regex' => '#https?://(www\\.)?myspace\\.com/.+/(?<id>[0-9]+)#i',
347
  'embed_url' => 'https://media.myspace.com/play/video/%s',
348
  'auto_thumbnail' => false,
359
  ],
360
  'rumble' => [
361
  'name' => 'Rumble.com',
362
+ 'oembed' => false,
363
  'regex' => '#https://rumble\\.com/(embed/)?(?<id>[^-/]+)#i',
364
  'embed_url' => 'https://rumble.com/embed/%s/',
365
  'default_params' => '',
371
  'id' => 'vd6thp',
372
  ],
373
  1 => [
374
+ 'url' => 'https://rumble.com/ve2ez5-airplane-returns-to-denver-after-engine-malfunction.html?foo=bar',
375
+ 'id' => 've2ez5',
376
  ],
377
  ],
378
  ],
379
  'rutube' => [
380
  'name' => 'RuTube.ru',
381
+ 'oembed' => false,
382
  'regex' => '#https?://(www\\.)?rutube\\.ru/play/embed/(?<id>[0-9]+)#i',
383
  'embed_url' => 'https://rutube.ru/play/embed/%s',
384
  'tests' => [
396
  ],
397
  'snotr' => [
398
  'name' => 'Snotr',
399
+ 'oembed' => false,
400
  'regex' => '#https?://(www\\.)?snotr\\.com/(video|embed)/(?<id>[0-9]+)#i',
401
  'embed_url' => 'https://www.snotr.com/embed/%s',
402
  'rebuild_url' => 'https://www.snotr.com/video/%s',
408
  ],
409
  ],
410
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
411
  'ted' => [
412
  'name' => 'TED Talks',
413
  'oembed' => true,
449
  ],
450
  'ustream' => [
451
  'name' => 'Ustream',
452
+ 'oembed' => false,
453
  'regex' => '#https?://(www\\.)?ustream\\.tv/(embed/|channel/)?(?<id>[0-9]{8}|recorded/[0-9]{8}(/highlight/[0-9]+)?)#i',
454
  'embed_url' => 'http://www.ustream.tv/embed/%s',
455
  'default_params' => 'html5ui',
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/',
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',
524
  ],
525
  ],
526
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  'wistia' => [
528
  'name' => 'Wistia',
529
  'oembed' => true,
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',
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',
655
  'id' => 'PL3Esg-ZzbiUmeSKBAQ3ej1hQxDSsmnp-7',
656
  ],
657
  1 => [
658
+ 'url' => 'https://www.youtube.com/watch?list=PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk&v=cyoffsDl4Hw',
659
  'id' => 'PLMUvgtCRyn-6obmhiDS4n5vYQN3bJRduk',
660
  ],
661
  ],
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.6
7
  Requires PHP: 5.6
8
- Stable tag: 9.4.2
9
  License: GPL-3.0
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -55,7 +55,7 @@ It is very likely the one and only plugin you will ever need to handle video emb
55
  #### Supported Providers ####
56
 
57
  [All providers with iframe embed codes](https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding)
58
- Alugha, Archive.org, Banned.video, Bitchute, Break, Mail.ru, Brightcove, cantcensortruth.com, Comedy Central, Dailymotion, Dailymotion Playlist, DTube, Facebook, Google Drive, mp4 or webm video files, ARVE general iframe embed, IGN, IMDB, Kickstarter, kla.tv, LiveLeak, Livestream.com, Metacafe, myspace, ooyala, Rumble.com, RuTube.ru, Snotr, Spike, TED Talks, Twitch, Ustream, Viddler, Vimeo, VK, vzaar, Wistia, XTube, Yahoo, Youku, YouTube, YouTube Playlist
59
  ### Reviews ###
60
 
61
  #### &#9733; &#9733; &#9733; &#9733; &#9733; Great plugin, great support ####
@@ -172,6 +172,11 @@ Please read the [official documentation](https://wordpress.org/support/article/m
172
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
173
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/random-video/#changelog)
174
 
 
 
 
 
 
175
  ### 2021-02-17 9.5.2-beta1 ###
176
 
177
  * Fix: Conflict with Notice library.
5
  Requires at least: 4.9.16
6
  Tested up to: 5.6
7
  Requires PHP: 5.6
8
+ Stable tag: 9.5.3-beta1
9
  License: GPL-3.0
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
55
  #### Supported Providers ####
56
 
57
  [All providers with iframe embed codes](https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding)
58
+ Alugha, Archive.org, Banned.video, Bitchute, Mail.ru, Brightcove, cantcensortruth.com, Comedy Central, Dailymotion, Dailymotion Playlist, DTube, Facebook, Google Drive, mp4 or webm video files, ARVE general iframe embed, IGN, IMDB, Kickstarter, kla.tv, LiveLeak, Livestream.com, Metacafe, myspace, ooyala, Rumble.com, RuTube.ru, Snotr, TED Talks, Twitch, Ustream, Viddler, Vimeo, VK, Wistia, XTube, Yahoo, Youku, YouTube, YouTube Playlist
59
  ### Reviews ###
60
 
61
  #### &#9733; &#9733; &#9733; &#9733; &#9733; Great plugin, great support ####
172
  * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog)
173
  * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/random-video/#changelog)
174
 
175
+ ### 2021-02-22 9.5.3-beta1 ###
176
+
177
+ * Fix: Shortcode arguments not working in all situations.
178
+ * Removed services that went down.
179
+
180
  ### 2021-02-17 9.5.2-beta1 ###
181
 
182
  * Fix: Conflict with Notice library.