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

Version Description

Download this release

Release Info

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

Code changes from version 8.9.5 to 8.8.9

LICENSE.txt CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  GNU GENERAL PUBLIC LICENSE
2
  Version 3, 29 June 2007
3
 
1
+ class-arve-vimeo.php
2
+ Vimeo Video Post Lite
3
+ https://wordpress.org/plugins/codeflavors-vimeo-video-post-lite/
4
+ GPL 2.0 or later
5
+
6
  GNU GENERAL PUBLIC LICENSE
7
  Version 3, 29 June 2007
8
 
admin/arve-shortcode-ui.js CHANGED
@@ -17,9 +17,9 @@ function arve_extract_url( changed, collection, shortcode ) {
17
  return;
18
  }
19
 
20
- if( val.match(/src="?([^\s"]+)/) ) {
21
 
22
- var test_url = val.match(/src="?([^\s"]+)/),
23
  only_url = test_url && test_url[1];
24
 
25
  input.val( only_url ).trigger( 'input' );
17
  return;
18
  }
19
 
20
+ if( val.match(/src="([^"]+)/) ) {
21
 
22
+ var test_url = val.match(/src="([^"]+)/),
23
  only_url = test_url && test_url[1];
24
 
25
  input.val( only_url ).trigger( 'input' );
admin/functions-admin.php CHANGED
@@ -579,11 +579,10 @@ function arve_validate_options_main( $input ) {
579
  $output['controlslist'] = sanitize_text_field( $input['controlslist'] );
580
  $output['vimeo_api_token'] = sanitize_text_field( $input['vimeo_api_token'] );
581
 
582
- $output['always_enqueue_assets'] = ( 'yes' == $input['always_enqueue_assets'] ) ? true : false;
583
- $output['autoplay'] = ( 'yes' == $input['autoplay'] ) ? true : false;
584
- $output['iframe_flash'] = ( 'yes' == $input['iframe_flash'] ) ? true : false;
585
- $output['promote_link'] = ( 'yes' == $input['promote_link'] ) ? true : false;
586
- $output['wp_video_override'] = ( 'yes' == $input['wp_video_override'] ) ? true : false;
587
 
588
  $output['wp_image_cache_time'] = (int) $input['wp_image_cache_time'];
589
 
579
  $output['controlslist'] = sanitize_text_field( $input['controlslist'] );
580
  $output['vimeo_api_token'] = sanitize_text_field( $input['vimeo_api_token'] );
581
 
582
+ $output['autoplay'] = ( 'yes' == $input['autoplay'] ) ? true : false;
583
+ $output['promote_link'] = ( 'yes' == $input['promote_link'] ) ? true : false;
584
+ $output['wp_video_override'] = ( 'yes' == $input['wp_video_override'] ) ? true : false;
585
+ $output['iframe_flash'] = ( 'yes' == $input['iframe_flash'] ) ? true : false;
 
586
 
587
  $output['wp_image_cache_time'] = (int) $input['wp_image_cache_time'];
588
 
admin/functions-licensing.php CHANGED
@@ -589,11 +589,11 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
589
 
590
  if ( empty( $license_data->license ) ) {
591
 
592
- $textarea_dump = arve_textarea_dump( $response );
593
 
594
  $message = sprintf(
595
- __( 'Error. Please report the following:<br> %s', ARVE_SLUG ),
596
- $textarea_dump
597
  );
598
  } else {
599
  $message = $license_data->license;
@@ -605,10 +605,8 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
605
 
606
  function arve_dump( $var ) {
607
  ob_start();
 
608
  var_dump( $var );
 
609
  return ob_get_clean();
610
  }
611
-
612
- function arve_textarea_dump( $var ) {
613
- return sprintf( '<textarea style="width: 100%; height: 70vh;">%s</textarea>', esc_textarea( arve_dump( $var ) ) );
614
- }
589
 
590
  if ( empty( $license_data->license ) ) {
591
 
592
+ $response_dump = arve_dump( $response );
593
 
594
  $message = sprintf(
595
+ __( 'Error. Please report the following: %s', ARVE_SLUG ),
596
+ $response_dump
597
  );
598
  } else {
599
  $message = $license_data->license;
605
 
606
  function arve_dump( $var ) {
607
  ob_start();
608
+ echo '<pre>';
609
  var_dump( $var );
610
+ echo '</pre>';
611
  return ob_get_clean();
612
  }
 
 
 
 
admin/html-settings-page.php CHANGED
@@ -25,33 +25,10 @@ $options = arve_get_options();
25
 
26
  <div class="arve-corner-spacer"></div>
27
 
28
- <h3>Please rate</h3>
29
- It would really help to get a <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/#new-post">5 star rating from you.</a>
30
-
31
- <p>This plugin is financed by purchases of the <a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a>. The development and support of this plugins has become a job for me so I hope you understand that I can not make all features gratis and that you <a href="https://nextgenthemes.com/plugins/arve-pro/">purchase it</a> to get extra features and support the development.</p>
32
-
33
- <h3><a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a></h3>
34
-
35
- <ul>
36
- <li><strong>Disable links in embeds (killer feature!)</strong><br>
37
- For example: Clicking on a title in a YouTube embed will not open a new popup/tab/window. <strong>Prevent video hosts to lead your visitors away from your site!</strong> Note this also breaks sharing functionality and is not possible when the provider requires flash. Try it on <a href="https://nextgenthemes.com/plugins/arve-pro/">this page</a>. Right click on links still works.</li>
38
- <li><strong>Lazyload mode</strong><br>
39
- Make your site load <strong>faster</strong> by loading only a image instead of the entire video player on pageload. </li>
40
- <li><strong>Lazyload -> Lightbox</strong><br>
41
- Shows the Video in a Lightbox after clicking a preview image</li>
42
- <li><strong>Link -> Lightbox</strong><br>
43
- Use simple links as triggers for lightboxed videos</li>
44
- <li>Automatic or custom thumbnail images</li>
45
- <li>Automatic or custom titles on top of your thumbnails</li>
46
- <li>'Expand on click' feature</li>
47
- <li>3 hover styles</li>
48
- <li>2 play icon styles to choose from</li>
49
- <li>Responsive thumbnails using cutting edge HTML5 technology</li>
50
- <li><strong>Feel good about yourself</strong><br>
51
- for supporting my 5+ years work on this plugin. Tons of hours, weekends … always worked on improving it.</li>
52
- <li>Show the latest video of a YouTube channel by using the channel URL (updated/cached hourly)</li>
53
- <li><strong><a href="https://nextgenthemes.com/plugins/arve-pro/">Get the ARVE Pro Addon</a></strong></li>
54
- </ul>
55
 
56
  </div>
57
 
25
 
26
  <div class="arve-corner-spacer"></div>
27
 
28
+ <?php printf( '<p><big><strong><a href="%s">Hiring a Marketing Person</a></strong></big></p>', 'https://nextgenthemes.com/hiring-a-marketing-person/' ); ?>
29
+
30
+ <?php echo file_get_contents( ARVE_PATH . 'readme/html/19-description-features-pro-intro.html' ); ?>
31
+ <?php echo file_get_contents( ARVE_PATH . 'readme/html/20-description-features-pro.html' ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  </div>
34
 
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: 8.9.5
7
  * Author: Nicolas Jonas
8
  * Author URI: https://nextgenthemes.com
9
  * License: GPL-3.0
@@ -19,7 +19,7 @@ if ( ! defined( 'WPINC' ) ) {
19
  }
20
 
21
  define( 'ARVE_SLUG', 'advanced-responsive-video-embedder' );
22
- define( 'ARVE_VERSION', '8.9.5' );
23
  define( 'ARVE_PRO_VERSION_REQUIRED', '4.0.0' );
24
 
25
  define( 'ARVE_URL', plugin_dir_url( __FILE__ ) );
@@ -65,7 +65,6 @@ function arve_init() {
65
  add_action( 'plugins_loaded', 'arve_oembed_remove_providers', 998 );
66
  add_action( 'wp_enqueue_scripts', 'arve_register_styles', 0 );
67
  add_action( 'wp_enqueue_scripts', 'arve_register_scripts', 0 );
68
- add_action( 'wp_enqueue_scripts', 'arve_maybe_enqueue_assets' );
69
  add_action( 'wp_video_shortcode_override', 'arve_wp_video_shortcode_override', 10, 4 );
70
  add_filter( 'widget_text', 'do_shortcode' );
71
  add_filter( 'language_attributes', 'arve_html_id' );
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: 8.8.9
7
  * Author: Nicolas Jonas
8
  * Author URI: https://nextgenthemes.com
9
  * License: GPL-3.0
19
  }
20
 
21
  define( 'ARVE_SLUG', 'advanced-responsive-video-embedder' );
22
+ define( 'ARVE_VERSION', '8.8.9' );
23
  define( 'ARVE_PRO_VERSION_REQUIRED', '4.0.0' );
24
 
25
  define( 'ARVE_URL', plugin_dir_url( __FILE__ ) );
65
  add_action( 'plugins_loaded', 'arve_oembed_remove_providers', 998 );
66
  add_action( 'wp_enqueue_scripts', 'arve_register_styles', 0 );
67
  add_action( 'wp_enqueue_scripts', 'arve_register_scripts', 0 );
 
68
  add_action( 'wp_video_shortcode_override', 'arve_wp_video_shortcode_override', 10, 4 );
69
  add_filter( 'widget_text', 'do_shortcode' );
70
  add_filter( 'language_attributes', 'arve_html_id' );
public/functions-enqueue.php CHANGED
@@ -24,16 +24,3 @@ function arve_register_scripts() {
24
  true
25
  );
26
  }
27
-
28
- function arve_maybe_enqueue_assets() {
29
-
30
- $options = arve_get_options();
31
-
32
- if ( $options['always_enqueue_assets'] ) {
33
- wp_enqueue_style( ARVE_SLUG );
34
- wp_enqueue_script( ARVE_SLUG );
35
-
36
- wp_enqueue_style( 'arve-pro' );
37
- wp_enqueue_script( 'arve-pro' );
38
- }
39
- }
24
  true
25
  );
26
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
public/functions-shortcode-filters.php CHANGED
@@ -14,7 +14,7 @@ function arve_get_wrapper_id( $a ) {
14
  static $wrapper_ids = array();
15
  $wrapper_id = null;
16
 
17
- foreach ( array( 'id', 'mp4', 'm4v', 'webm', 'ogv', 'url', 'random_video_url', 'webtorrent' ) as $att ) {
18
 
19
  if ( ! empty( $a[ $att ] ) && is_string( $a[ $att ] ) ) {
20
  $wrapper_id = 'arve-' . $a[ $att ];
@@ -95,14 +95,13 @@ function arve_sc_filter_attr( $a ) {
95
  }
96
 
97
  $a['iframe_attr'] = array(
98
- 'allow' => 'autoplay; fullscreen',
99
  'allowfullscreen' => '',
100
  'class' => 'arve-iframe fitvidsignore',
101
  'frameborder' => '0',
102
  'name' => $a['iframe_name'],
103
- 'sandbox' => 'allow-scripts allow-same-origin allow-presentation allow-popups',
104
  'scrolling' => 'no',
105
  'src' => $iframe_src,
 
106
  'width' => empty( $a['width'] ) ? false : $a['width'],
107
  'height' => empty( $a['height'] ) ? false : $a['height'],
108
  );
@@ -165,10 +164,12 @@ function arve_sc_filter_sanitise( $atts ) {
165
 
166
  foreach ( $atts as $key => $value ) {
167
 
168
- $atts[ $key ] = (string) $value;
 
 
169
 
170
- if ( '' === $value ) {
171
- $atts[ $key ] = null;
172
  }
173
  }
174
 
@@ -422,21 +423,21 @@ function arve_sc_filter_build_tracks_html( $atts ) {
422
  return $atts;
423
  }
424
 
425
- preg_match( '#-(?<type>captions|chapters|descriptions|metadata|subtitles)-(?<lang>[a-z]{2}).vtt$#i', $atts[ "track_{$n}" ], $matches );
426
 
427
  if ( empty( $matches[1] ) ) {
428
  $atts[ "track_{$n}" ] = new WP_Error( 'track', __( 'Track kind or language code could not detected from filename', ARVE_SLUG ) );
429
  return $atts;
430
  }
431
 
432
- $label = empty( $atts[ "track_{$n}_label" ] ) ? arve_get_language_name_from_code( $matches['lang'] ) : $atts[ "track_{$n}_label" ];
433
 
434
  $attr = array(
435
  'default' => ( 1 === $n ) ? true : false,
436
- 'kind' => $matches['type'],
437
  'label' => $label,
438
  'src' => $atts[ "track_{$n}" ],
439
- 'srclang' => $matches['lang'],
440
  );
441
 
442
  $atts['video_tracks_html'] .= sprintf( '<track%s>', arve_attr( $attr) );
14
  static $wrapper_ids = array();
15
  $wrapper_id = null;
16
 
17
+ foreach ( array( 'id', 'mp4', 'm4v', 'webm', 'ogv', 'url', 'webtorrent' ) as $att ) {
18
 
19
  if ( ! empty( $a[ $att ] ) && is_string( $a[ $att ] ) ) {
20
  $wrapper_id = 'arve-' . $a[ $att ];
95
  }
96
 
97
  $a['iframe_attr'] = array(
 
98
  'allowfullscreen' => '',
99
  'class' => 'arve-iframe fitvidsignore',
100
  'frameborder' => '0',
101
  'name' => $a['iframe_name'],
 
102
  'scrolling' => 'no',
103
  'src' => $iframe_src,
104
+ 'sandbox' => 'allow-scripts allow-same-origin allow-presentation allow-popups',
105
  'width' => empty( $a['width'] ) ? false : $a['width'],
106
  'height' => empty( $a['height'] ) ? false : $a['height'],
107
  );
164
 
165
  foreach ( $atts as $key => $value ) {
166
 
167
+ if ( null === $value ) {
168
+ continue;
169
+ }
170
 
171
+ if( ! is_string( $value ) ) {
172
+ $atts[ $key ] = arve_error( sprintf( __( '<code>%s</code> is not a string. Only Strings should be passed to the shortcode function', ARVE_SLUG ), $key ) );
173
  }
174
  }
175
 
423
  return $atts;
424
  }
425
 
426
+ preg_match( '#-(captions|chapters|descriptions|metadata|subtitles)-([a-z]{2}).vtt$#i', $atts[ "track_{$n}" ], $matches );
427
 
428
  if ( empty( $matches[1] ) ) {
429
  $atts[ "track_{$n}" ] = new WP_Error( 'track', __( 'Track kind or language code could not detected from filename', ARVE_SLUG ) );
430
  return $atts;
431
  }
432
 
433
+ $label = empty( $atts[ "track_{$n}_label" ] ) ? arve_get_language_name_from_code( $matches[2] ) : $atts[ "track_{$n}_label" ];
434
 
435
  $attr = array(
436
  'default' => ( 1 === $n ) ? true : false,
437
+ 'kind' => $matches[1],
438
  'label' => $label,
439
  'src' => $atts[ "track_{$n}" ],
440
+ 'srclang' => $matches[2],
441
  );
442
 
443
  $atts['video_tracks_html'] .= sprintf( '<track%s>', arve_attr( $attr) );
public/functions-shortcodes.php CHANGED
@@ -1,73 +1,53 @@
1
  <?php
2
 
3
- function arve_shortcode( $input_atts, $content = null ) {
4
-
5
- /**
6
- * Filters the default arve shortcode output.
7
- *
8
- * If the filtered output isn't empty, it will be used instead of generating
9
- * the default video template.
10
- *
11
- * @since 8.8.2
12
- *
13
- * @param string $html Empty variable to be replaced with shortcode markup.
14
- * @param array $atts Attributes of the shortcode.
15
- * @param string $content Video shortcode content.
16
- */
17
- $override = apply_filters( 'arve_shortcode_overwride', '', $input_atts, $content );
18
- if ( '' !== $override ) {
19
- return $override;
20
- }
21
-
22
- return arve_shortcode_arve( $input_atts, $content );
23
- }
24
-
25
  function arve_shortcode_arve( $input_atts, $content = null, $arve_shortcode = true ) {
26
 
27
  $errors = '';
28
  $options = arve_get_options();
29
  $properties = arve_get_host_properties();
30
  $input_atts = (array) $input_atts;
 
31
 
32
  $pairs = array(
33
- 'align' => $options['align'],
34
- 'arve_link' => arve_bool_to_shortcode_string( $options['promote_link'] ),
35
- 'aspect_ratio' => null,
36
- 'autoplay' => arve_bool_to_shortcode_string( $options['autoplay'] ),
37
- 'description' => null,
38
- 'duration' => null,
39
- 'disable_flash' => null,
40
- 'iframe_name' => null,
41
- 'maxwidth' => (string) $options['video_maxwidth'],
42
- 'mode' => $options['mode'],
43
- 'parameters' => null,
44
- 'src' => null, // Just a alias for url to make it simple
45
- 'thumbnail' => null,
46
- 'title' => null,
47
- 'upload_date' => null,
48
- // <video>
49
- 'm4v' => null,
50
- 'mp4' => null,
51
- 'ogv' => null,
52
- 'webm' => null,
53
- 'preload' => 'metadata',
54
- 'playsinline' => null,
55
- 'muted' => null,
56
- 'controls' => 'y',
57
- 'controlslist' => empty( $options['controlslist'] ) ? null : (string) $options['controlslist'],
58
- 'loop' => 'n',
59
- // TED only
60
- 'lang' => null,
61
- // Vimeo only
62
- 'start' => null,
63
- // Old Shortcodes / URL embeds
64
- 'id' => null,
65
- 'provider' => null,
66
- // deprecated, title should be used
67
- 'link_text' => null,
68
  );
69
 
70
  for ( $n = 1; $n <= ARVE_NUM_TRACKS; $n++ ) {
 
71
  $pairs["track_{$n}"] = null;
72
  $pairs["track_{$n}_label"] = null;
73
  }
@@ -99,7 +79,7 @@ function arve_shortcode_arve( $input_atts, $content = null, $arve_shortcode = tr
99
  $output = apply_filters( 'arve_output', $normal_embed, $html, $atts );
100
 
101
  if ( empty( $output ) ) {
102
- return arve_error( 'The output is empty, this should not happen', ARVE_SLUG );
103
  } elseif ( is_wp_error( $output ) ) {
104
  return arve_error( $output->get_error_message() );
105
  }
@@ -133,7 +113,7 @@ function arve_create_shortcodes() {
133
  add_shortcode( $shortcode, $function );
134
  }
135
 
136
- add_shortcode( 'arve', 'arve_shortcode' );
137
  add_shortcode( 'arve-supported', 'arve_shortcode_arve_supported' );
138
  add_shortcode( 'arve-supported-list', 'arve_shortcode_arve_supported_list' );
139
  add_shortcode( 'arve-params', 'arve_shortcode_arve_params' );
1
  <?php
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  function arve_shortcode_arve( $input_atts, $content = null, $arve_shortcode = true ) {
4
 
5
  $errors = '';
6
  $options = arve_get_options();
7
  $properties = arve_get_host_properties();
8
  $input_atts = (array) $input_atts;
9
+ $f_atts = $input_atts;
10
 
11
  $pairs = array(
12
+ 'align' => $options['align'],
13
+ 'arve_link' => arve_bool_to_shortcode_string( $options['promote_link'] ),
14
+ 'aspect_ratio' => null,
15
+ 'autoplay' => arve_bool_to_shortcode_string( $options['autoplay'] ),
16
+ 'description' => null,
17
+ 'duration' => null,
18
+ 'disable_flash' => null,
19
+ 'iframe_name' => null,
20
+ 'maxwidth' => (string) $options['video_maxwidth'],
21
+ 'mode' => $options['mode'],
22
+ 'parameters' => null,
23
+ 'src' => null, # Just a alias for url to make it simple
24
+ 'thumbnail' => null,
25
+ 'title' => null,
26
+ 'upload_date' => null,
27
+ # <video>
28
+ 'm4v' => null,
29
+ 'mp4' => null,
30
+ 'ogv' => null,
31
+ 'webm' => null,
32
+ 'preload' => 'metadata',
33
+ 'playsinline' => null,
34
+ 'muted' => null,
35
+ 'controls' => 'y',
36
+ 'controlslist' => empty( $options['controlslist'] ) ? null : (string) $options['controlslist'],
37
+ 'loop' => 'n',
38
+ # TED only
39
+ 'lang' => null,
40
+ # Vimeo only
41
+ 'start' => null,
42
+ # Old Shortcodes / URL embeds
43
+ 'id' => null,
44
+ 'provider' => null,
45
+ # deprecated, title should be used
46
+ 'link_text' => null,
47
  );
48
 
49
  for ( $n = 1; $n <= ARVE_NUM_TRACKS; $n++ ) {
50
+
51
  $pairs["track_{$n}"] = null;
52
  $pairs["track_{$n}_label"] = null;
53
  }
79
  $output = apply_filters( 'arve_output', $normal_embed, $html, $atts );
80
 
81
  if ( empty( $output ) ) {
82
+ return arve_error( 'The output is empty, this should not happen' );
83
  } elseif ( is_wp_error( $output ) ) {
84
  return arve_error( $output->get_error_message() );
85
  }
113
  add_shortcode( $shortcode, $function );
114
  }
115
 
116
+ add_shortcode( 'arve', 'arve_shortcode_arve' );
117
  add_shortcode( 'arve-supported', 'arve_shortcode_arve_supported' );
118
  add_shortcode( 'arve-supported-list', 'arve_shortcode_arve_supported_list' );
119
  add_shortcode( 'arve-params', 'arve_shortcode_arve_params' );
readme.txt CHANGED
@@ -156,31 +156,6 @@ This plugins embed is considered as 'custom player' by YouTube so you have to pa
156
  * [ARVE Pro addon changelog](https://nextgenthemes.com/plugins/arve-pro/changelog/)
157
  * [ARVE AMP addon changelog](https://nextgenthemes.com/plugins/arve-amp/)
158
 
159
- ### 2018-06-07 - 8.9.5 ###
160
-
161
- * Fixed: When pasting embed codes into the Shortcode UI dialog the `src=` will be extracted even when no quotes are used.
162
- * Improved: Use youtube-nocookie.com domain again it is GPRP/Privacy friendly. Note the name is confusing as it sets cookies, but only when the user plays the video rather then just when loading the iframe. So its not "no cookies". But you can mention this into your cookie notices when dealing with GPRP.
163
-
164
- ### 2018-06-02 - 8.9.4 ###
165
-
166
- * Improved: Try to make autoplay in Chrome possible again. See [New Chrome Autoplay behavior](https://developers.google.com/web/updates/2017/09/autoplay-policy-changes). At the point of writing its not clear if the new iframe attribute makes them just autoplay no matter what. Please report your experiences.
167
-
168
- ### 2018-04-29 - 8.9.3 ###
169
-
170
- * Improved: Make overwrite of shortcode possible. Used in new [Random Video Addon](https://nextgenthemes.com/plugins/arve-random-video/)
171
-
172
- ### 2018-04-18 - 8.9.2 ###
173
-
174
- * Fix possible "not a string" errors.
175
-
176
- ### 2018-04-12 - 8.9.1 ###
177
-
178
- * New: Option to always load assets. Needed when dealing with AJAX and other special cases.
179
-
180
- ### 2018-03-16 - 8.9.0 ###
181
-
182
- * Fixed/improved Ustream url detection. Make sure you remove `wmode=transparent` if present and include `html5ui=1` for ustream on the ARVE URL parameters settings tab.
183
-
184
  ### 2018-03-13 - 8.8.9 ###
185
 
186
  * Improved licensing debug code.
156
  * [ARVE Pro addon changelog](https://nextgenthemes.com/plugins/arve-pro/changelog/)
157
  * [ARVE AMP addon changelog](https://nextgenthemes.com/plugins/arve-amp/)
158
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  ### 2018-03-13 - 8.8.9 ###
160
 
161
  * Improved licensing debug code.
readme/html/01-top.html ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <p>=== ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video ...) ===<br />Contributors: nico23<br />Donate link: <a href='https://www.paypal.me/nico23'>https://www.paypal.me/nico23</a><br />Tags: YouTube, Vimeo, lazyload, thumbnail, video, responsive, embeds, video-embedder, iframe, lightweight, simplicity, shortcodes<br />Requires at least: 4.4.0<br />Tested up to: 4.9.2<br />Requires PHP: 5.3<br />Stable tag: trunk<br />License: GPL-3.0<br />License URI: <a href='https://www.gnu.org/licenses/gpl-3.0.html'>https://www.gnu.org/licenses/gpl-3.0.html</a></p>
2
+
3
+ <p>Easy responsive video embeds via URLs or shortcodes. Perfect drop-in replacement for WordPress' default embeds. Best plugin for videos?</p>
4
+
5
+ <h2>Description</h2>
6
+
7
+ <p>The best WordPress plugin for videos? Supports close to everything you can imagine, still keeping it easy &amp; simple.</p>
8
+
9
+ <p>It is very likely the one and only plugin you will ever need to handle video embeds on your WordPress site(s). It goes far beyond just making your videos responsive!</p>
10
+
11
+ <p>[youtube <a href='https://www.youtube.com/watch?v=m6mkA6Zr1vY'>https://www.youtube.com/watch?v=m6mkA6Zr1vY</a> ]</p>
12
+
13
+ <p><strong>I could really use some positive reviews. It has been over 6 month without a positive review.</strong> The top level menu that was complained about a lot has been removed. I am working on a big update that will make ARVE even better with automatic detection of aspect ratios, better caching and lots of improved code.</p>
14
+
15
+ <ul>
16
+ <li><a href="https://github.com/nextgenthemes/arve/">GitHub Page</a></li>
17
+ <li><a href="https://nextgenthemes.com/plugins/arve/documentation/">Documentation</a></li>
18
+ </ul>
readme/html/10-description-features.html ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h3>Features</h3>
2
+
3
+ <ul>
4
+ <li>SEO friendly, lets you specify title, description, upload date to provide search engines with the schema.org data they like to have for better indexing.</li>
5
+ <li><abbr title="What You See Is What You Get">WYSIWYG</abbr> support. No more messing around with shortcodes and previewing.</li>
6
+ <li>New improved dialog for embedding videos.</li>
7
+ <li>Magically makes those url embedded videos responsive.</li>
8
+ <li>No 'lock in' if do not use shortcodes and use providers WordPress already supports.</li>
9
+ <li>Supports <a href="https://nextgenthemes.com/plugins/arve-pro/#support-table">almost every video host</a> that supports iframe embed codes.</li>
10
+ <li>Embeds via pasting the URL in its own line just like WordPress!</li>
11
+ <li>Optionally use very powerful Shortcodes instead.</li>
12
+ <li>Clean shortcode syntax <code>[arve url="<a href='https://youtu.be/yUCFRL43Zm4'>https://youtu.be/yUCFRL43Zm4</a>" align="left" parameters="start=30" ... /]</code>, no unnecessary shortcode wrapping.</li>
13
+ <li>One single button for all providers.</li>
14
+ <li>Responsive embeds with CSS, much better then with JavaScript.</li>
15
+ <li>Tries to be as unobtrusive as possible, sets 'hide brand' variables if supported, disables related videos at the end … to help keep people on your site rather then going to YouTube or keep watching videos.</li>
16
+ <li>Autostart (for providers that support it, mobile browsers prevent this)</li>
17
+ <li>Custom URL parameters to use all options providers offer.</li>
18
+ <li>Optional maximal width.</li>
19
+ <li>Video alignment.</li>
20
+ <li>Detailed description of options in-place.</li>
21
+ <li>Automatic detected and custom aspect ratio.</li>
22
+ </ul>
readme/html/12-description-supported-providers.html ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <h3><a href="https://nextgenthemes.com/plugins/arve-pro/#support-table">Supported Providers</a></h3>
2
+
3
+ <p>allmyvideos.net, Alugha, Archive.org, Break, Brightcove, CollegeHumor, Comedy Central, Dailymotion, Facebook, Funny or Die, IGN, Kickstarter, LiveLeak, Livestream, kla.tv, Metacafe, Movieweb, MPORA, Myspace, Snotr, Spike, TED Talks, Twitch, Ustream, RuTube.ru, Veoh, Vevo, Viddler, vidspot.net, Vine, Vimeo, VK, Vzaar, Wistia, XTube, Yahoo, Youku, YouTube, YouTube Playlist, HTML5 video files directly, Google_drive, Dropbox, Ooyala<br /><a href="https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding">All providers with responsive iframe embed codes</a></p>
readme/html/13-description-reviews.html ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h3>Reviews</h3>
2
+
3
+ <p>If you find this plugin useful please <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/#new-post">give it a 5 star review</a>. It has 60000+ installs but only 100 reviews after over 5 years!</p>
4
+
5
+ <h4>&#9733; &#9733; &#9733; &#9733; &#9733; The best there is – I have tried many…</h4>
6
+
7
+ <p>Have downloaded and paid for at least 4 other video players that use lightbox. Each one has major flaws. This products works perfectly. If you use the OnSite Editor, then just copy the short code and it works great.</p>
8
+
9
+ <p>[arve url="<a href='https://www.youtube.com/watch?v=Z7g8-GxLTSc'>https://www.youtube.com/watch?v=Z7g8-GxLTSc</a>"]</p>
10
+
11
+ <p>For speed, the product uses the thumbnails from the server. So many of the other products do NOT do this and it slows the page rendering. This product should appear first on the WordPress search. Spent 3 days of my life wasted on other products, only to delete each one. <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5">review by jodani</a></p>
12
+
13
+ <h4>&#9733; &#9733; &#9733; &#9733; &#9733; Finally something that works</h4>
14
+
15
+ <p>So I have a responsive theme but on pages with you tube videos it wasn't making the you tube videos fit in the mobile screen. I have spent the last hour trying many plugins and researching on google and finally I installed this. And I didn't have to update any settings or anything just refreshed a post with videos and all the sudden it is beautiful and responsive on my mobile phone!!!!!! THANK YOU!!!! <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5">review by happyecho</a></p>
16
+
17
+ <h4>&#9733; &#9733; &#9733; &#9733; &#9733; Only Plug-in that worked</h4>
18
+
19
+ <p>I used a lot of high ranking plug-ins but they still broke my design. Downloaded this and worked right away. Thanks! <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5">review by crconnell89</a></p>
readme/html/19-description-features-pro-intro.html ADDED
@@ -0,0 +1 @@
 
1
+ <p>This plugin is financed by the awesome buyers of the <a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a>. The development and support of this plugins has become a job for me so I hope you understand that I can not make all features gratis and that you <a href="https://nextgenthemes.com/plugins/arve-pro/">purchase it</a> to get extra features and support the development.</p>
readme/html/20-description-features-pro.html ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h3><a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a></h3>
2
+
3
+ <ul>
4
+ <li><strong>Disable links in embeds (killer feature!)</strong><br>
5
+ For example: Clicking on a title in a YouTube embed will not open a new popup/tab/window. <strong>Prevent video hosts to lead your visitors away from your site!</strong> Note this also breaks sharing functionality and is not possible when the provider requires flash. Try it on <a href="https://nextgenthemes.com/plugins/arve-pro/">this page</a>. Right click on links still works.</li>
6
+ <li><strong>Lazyload mode</strong><br>
7
+ Make your site load <strong>faster</strong> by loading only a image instead of the entire video player on pageload. </li>
8
+ <li><strong>Lazyload -> Lightbox</strong><br>
9
+ Shows the Video in a Lightbox after clicking a preview image</li>
10
+ <li><strong>Link -> Lightbox</strong><br>
11
+ Use simple links as triggers for lightboxed videos</li>
12
+ <li>Automatic or custom thumbnail images</li>
13
+ <li>Automatic or custom titles on top of your thumbnails</li>
14
+ <li>'Expand on click' feature</li>
15
+ <li>3 hover styles</li>
16
+ <li>2 play icon styles to choose from</li>
17
+ <li>Responsive thumbnails using cutting edge HTML5 technology</li>
18
+ <li><strong>Feel good about yourself</strong><br>
19
+ for supporting my 5+ years work on this plugin. Tons of hours, weekends … always worked on improving it.</li>
20
+ <li>Show the latest video of a YouTube channel by using the channel URL (updated/cached hourly)</li>
21
+ <li><strong><a href="https://nextgenthemes.com/plugins/arve-pro/">Get the ARVE Pro Addon</a></strong></li>
22
+ </ul>
readme/html/25-description-features-amp.html ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h3>ARVE AMP Addon</h3>
2
+
3
+ <ul>
4
+ <li>Requires the gratis plugins <a href="https://wordpress.org/plugins/advanced-responsive-video-embedder/">ARVE</a> and <a href="https://wordpress.org/plugins/amp/">AMP</a></li>
5
+ <li>Makes ARVE ready for Accelerated Mobile Pages (AMP)</li>
6
+ <li>It will display videos embedded with ARVE on AMP pages correctly</li>
7
+ <li>No options, just works</li>
8
+ <li>It creates &lt;amp-brightcove&gt;, &lt;amp-youtube&gt;, &lt;amp-vimeo&gt;, &lt;amp-dailymotion&gt; elements</li>
9
+ <li>For all other video hosts supported by ARVE &lt;amp-iframe&gt; element is used</li>
10
+ <li>HTML5 video embeds are also supported with &lt;amp-video&gt;</li>
11
+ <li><strong><a href="https://nextgenthemes.com/plugins/arve-amp/">Check out the ARVE AMP Addon</a></strong></li>
12
+ </ul>
readme/html/35-description-thanks.html ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h3>Thanks</h3>
2
+
3
+ <ul>
4
+ <li>Of course all the customers who bought a addon.</li>
5
+ <li>Howard Iken of <a href="https://www.myfloridalaw.com">myfloridalaw.com</a> top donor, super nice to me even if I was rude and not deserved it!</li>
6
+ <li><a href="https://www.ilyagrishkov.com">Ilya Grishkov</a> for bringing up the idea and the first code to cache thumbnail urls.</li>
7
+ <li>Everybody giving constructive feedback, testing beta versions.</li>
8
+ <li>Everybody who donated back in the days when this was donation based.</li>
9
+ </ul>
10
+
11
+ <h3>Thanks to the developers of the software used in ARVE</h3>
12
+
13
+ <ul>
14
+ <li><a href="https://wordpress.org/plugins/shortcode-ui/">Shortcode UI</a>, optional Plugin, utilized by ARVE</li>
15
+ <li><a href="http://sorgalla.com/lity/">Lity Lightbox</a>, used in <a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a></li>
16
+ </ul>
readme/html/50-installation-faq-screenshots.html ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <h2>Installation</h2>
2
+
3
+ <p>Please refer to <a href="https://codex.wordpress.org/Managing_Plugins#Automatic_Plugin_Installation">codex.wordpress.org/Managing_Plugins#Automatic_Plugin_Installation</a>.</p>
4
+
5
+ <h2>Frequently Asked Questions</h2>
6
+
7
+ <h3>I have a problem ...</h3>
8
+
9
+ <p>Please report it on <a href="https://nextgenthemes.com/support/">nextgenthemes.com/support/</a> <strong>and please do not on the wordpess.org forums, thanks.</strong></p>
10
+
11
+ <h3>How to get the pro version working?</h3>
12
+
13
+ <ol>
14
+ <li>Go though the purchase process on <a href="https://nextgenthemes.com/arve-pro/">nextgenthemes.com/arve-pro/</a></li>
15
+ <li>Follow the 3 easy steps you get with the purchase receipt. It is basically downloading a arve-pro.zip and installing it through your WordPress Admin panel.</li>
16
+ </ol>
17
+
18
+ <h3>Why are my videos not filling their container?</h3>
19
+
20
+ <p>You are most likely use <code>align</code>, this plugin has a option for limiting video width with alignment. If you want your videos to fill their containers then you should not use the <code>align</code> shortcode attribute. This assumes that you left the 'Video Maximal Width' field on the options page empty.</p>
21
+
22
+ <h3>Can you add a video provider?</h3>
23
+
24
+ <p>I have no plans on implementing providers that include videos via JavaScript such as www.nicovideo.jp. I also will not implement video services from mainstream media news organizations. For others, feel free to ask.</p>
25
+
26
+ <h3>How do I embed videos from a unlisted providers / iframes?</h3>
27
+
28
+ <p>This plugin not changes anything to usual HTML <code>&lt;iframe&gt;</code> embed codes you have to use the shortcode creator dialog and paste iframe embed codes there or write them manually. They will become <code>[arve url="https://..."]</code>. The url represents what is the <code>src</code> in HTML embeds. It works as simple as this, if the [arve] shortcode does not detect a known URL structure then it will treat the URL as a <code>src</code> for the iframe.</p>
29
+
30
+ <h3>Why does my YouTube video not repeat/loop?</h3>
31
+
32
+ <p>This plugins embed is considered as 'custom player' by YouTube so you have to pass the video ID as playlist parameters to make the loop work.</p>
33
+
34
+ <p><code>[arve url="<a href='https://www.youtube.com/watch?v=pvRqvX413Ik'>https://www.youtube.com/watch?v=pvRqvX413Ik</a>" parameters="loop=1&amp;playlist=pvRqvX413Ik"]</code></p>
35
+
36
+ <h2>Screenshots</h2>
37
+
38
+ <ol>
39
+ <li>Shortcode dialog</li>
40
+ <li>Main Options</li>
41
+ <li>URL Parameter Options</li>
42
+ <li>Pro Options</li>
43
+ </ol>
shared/functions-shared.php CHANGED
@@ -3,19 +3,18 @@
3
  function arve_get_options_defaults( $section ) {
4
 
5
  $options['main'] = array(
6
- 'align_maxwidth' => 400,
7
- 'align' => 'none',
8
- 'always_enqueue_assets' => false,
9
- 'autoplay' => false,
10
- 'mode' => 'normal',
11
- 'promote_link' => false,
12
- 'video_maxwidth' => '',
13
- 'wp_image_cache_time' => 18000,
14
- 'last_settings_tab' => '',
15
- 'wp_video_override' => true,
16
- 'controlslist' => 'nodownload',
17
- 'vimeo_api_token' => '',
18
- 'iframe_flash' => true,
19
  );
20
 
21
  $properties = arve_get_host_properties();
@@ -91,7 +90,7 @@ function arve_get_settings_definitions() {
91
  $current_mode_name = $options['mode'];
92
  }
93
 
94
- $definitions = array(
95
  array(
96
  'hide_from_settings' => true,
97
  'attr' => 'url',
@@ -358,35 +357,14 @@ function arve_get_settings_definitions() {
358
  'https://nextgenthemes.com/plugins/arve-pro/#support-table'
359
  ),
360
  ),
361
- array(
362
- 'hide_from_sc' => true,
363
- 'attr' => 'always_enqueue_assets',
364
- 'label' => esc_html__( 'Assent loading', ARVE_SLUG ),
365
- 'type' => 'select',
366
- 'options' => array(
367
- 'no' => esc_html__( 'When ARVE video is detected', ARVE_SLUG ),
368
- 'yes' => esc_html__( 'Always', ARVE_SLUG ),
369
- ),
370
- 'description' => sprintf(
371
- __( 'Usually ARVE will loads its scripts and styles only on pages what need them. In case your content is loaded via AJAX or the styles are not loaded for another reason you may have to enable this option', ARVE_SLUG ),
372
- 'https://nextgenthemes.com/plugins/arve-pro/#support-table'
373
- ),
374
- ),
375
  array(
376
  'hide_from_sc' => true,
377
  'attr' => 'vimeo_api_token',
378
  'label' => esc_html__( 'Video API Token', ARVE_SLUG ),
379
  'type' => 'text',
380
- 'description' => sprintf(
381
- __( 'Needed for <a href="%s">Random Video Addon</a>.', ARVE_SLUG ),
382
- 'https://nextgenthemes.local/plugins/arve-random-video/'
383
- ),
384
  ),
385
  );
386
-
387
- $definitions = apply_filters( 'arve_settings_definitions', $definitions );
388
-
389
- return $definitions;
390
  }
391
 
392
  /**
@@ -807,21 +785,15 @@ function arve_get_host_properties() {
807
  ),
808
  ),
809
  'ustream' => array(
810
- 'regex' => $s . 'ustream\.tv/(embed/)?(channel/)?(?<id>[0-9]+|recorded/[0-9]+(/highlight/[0-9]+)?)',
811
  'embed_url' => 'http://www.ustream.tv/embed/%s',
812
  'default_params' => 'html5ui',
813
  'auto_thumbnail' => false,
814
  'aspect_ratio' => '480:270',
815
  'tests' => array(
816
- array(
817
- 'url' => 'http://www.ustream.tv/recorded/59999872?utm_campaign=ustre.am&utm_source=ustre.am/:43KHS&utm_medium=social&utm_content=20170405204127',
818
- 'id' => 'recorded/59999872'
819
- ),
820
- array(
821
- 'url' => 'http://www.ustream.tv/embed/17074538?wmode=transparent&v=3&autoplay=false',
822
- 'id' => '17074538'
823
- ),
824
  ),
 
825
  ),
826
  'rutube' => array(
827
  'name' => 'RuTube.ru',
@@ -831,7 +803,7 @@ function arve_get_host_properties() {
831
  'tests' => array(
832
  array(
833
  'url' => 'https://rutube.ru/play/embed/9822149',
834
- 'id' => '9822149'
835
  ),
836
  ),
837
  ),
@@ -1008,7 +980,7 @@ function arve_get_host_properties() {
1008
  'youtube' => array(
1009
  'name' => 'YouTube',
1010
  'regex' => $s . '(youtube\.com\/\S*((\/e(mbed))?\/|watch\?(\S*?&?v\=))|youtu\.be\/)(?<id>[a-zA-Z0-9_-]{6,11}((\?|&)list=[a-z0-9_\-]+)?)',
1011
- 'embed_url' => 'https://www.youtube-nocookie.com/embed/%s',
1012
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
1013
  'auto_thumbnail' => true,
1014
  'auto_title' => true,
@@ -1204,7 +1176,7 @@ function arve_get_host_properties() {
1204
  'youtubelist' => array(
1205
  'regex' => $s . 'youtube\.com/(embed/videoseries|playlist)\?list=(?<id>[-a-z0-9_]+)',
1206
  'name' => 'YouTube Playlist',
1207
- 'embed_url' => 'https://www.youtube-nocookie.com/embed/videoseries?list=%s',
1208
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
1209
  'auto_thumbnail' => true,
1210
  'tests' => array(
3
  function arve_get_options_defaults( $section ) {
4
 
5
  $options['main'] = array(
6
+ 'align_maxwidth' => 400,
7
+ 'align' => 'none',
8
+ 'autoplay' => false,
9
+ 'mode' => 'normal',
10
+ 'promote_link' => false,
11
+ 'video_maxwidth' => '',
12
+ 'wp_image_cache_time' => 18000,
13
+ 'last_settings_tab' => '',
14
+ 'wp_video_override' => true,
15
+ 'controlslist' => 'nodownload',
16
+ 'vimeo_api_token' => '',
17
+ 'iframe_flash' => true,
 
18
  );
19
 
20
  $properties = arve_get_host_properties();
90
  $current_mode_name = $options['mode'];
91
  }
92
 
93
+ return array(
94
  array(
95
  'hide_from_settings' => true,
96
  'attr' => 'url',
357
  'https://nextgenthemes.com/plugins/arve-pro/#support-table'
358
  ),
359
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
  array(
361
  'hide_from_sc' => true,
362
  'attr' => 'vimeo_api_token',
363
  'label' => esc_html__( 'Video API Token', ARVE_SLUG ),
364
  'type' => 'text',
365
+ 'description' => esc_html__( 'Leave blank for now.', ARVE_SLUG ),
 
 
 
366
  ),
367
  );
 
 
 
 
368
  }
369
 
370
  /**
785
  ),
786
  ),
787
  'ustream' => array(
788
+ 'regex' => $s . 'ustream\.tv/(channel/)?(?<id>[0-9]{8}|recorded/[0-9]{8}(/highlight/[0-9]+)?)',
789
  'embed_url' => 'http://www.ustream.tv/embed/%s',
790
  'default_params' => 'html5ui',
791
  'auto_thumbnail' => false,
792
  'aspect_ratio' => '480:270',
793
  'tests' => array(
794
+ array( 'url' => 'http://www.ustream.tv/recorded/59999872?utm_campaign=ustre.am&utm_source=ustre.am/:43KHS&utm_medium=social&utm_content=20170405204127', 'id' => 'recorded/59999872' ),
 
 
 
 
 
 
 
795
  ),
796
+
797
  ),
798
  'rutube' => array(
799
  'name' => 'RuTube.ru',
803
  'tests' => array(
804
  array(
805
  'url' => 'https://rutube.ru/play/embed/9822149',
806
+ 'id' => 9822149
807
  ),
808
  ),
809
  ),
980
  'youtube' => array(
981
  'name' => 'YouTube',
982
  'regex' => $s . '(youtube\.com\/\S*((\/e(mbed))?\/|watch\?(\S*?&?v\=))|youtu\.be\/)(?<id>[a-zA-Z0-9_-]{6,11}((\?|&)list=[a-z0-9_\-]+)?)',
983
+ 'embed_url' => 'https://www.youtube.com/embed/%s',
984
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
985
  'auto_thumbnail' => true,
986
  'auto_title' => true,
1176
  'youtubelist' => array(
1177
  'regex' => $s . 'youtube\.com/(embed/videoseries|playlist)\?list=(?<id>[-a-z0-9_]+)',
1178
  'name' => 'YouTube Playlist',
1179
+ 'embed_url' => 'https://www.youtube.com/embed/videoseries?list=%s',
1180
  'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
1181
  'auto_thumbnail' => true,
1182
  'tests' => array(