Thanks to Wavekit for sponsoring this addition.
Added support for private playlists.
Added support for dark theme in Instagram.
Updated Vimeo to make the BBCode more compatible with XenForo 2.2.9's format.
Updated Vocaroo player, removed the old Flash player.
Fixed an issue with some YouMaker URLs.
Telegram embeds now support dark themes. No functional change in embedded tweets.
A number of improvements have been made to the lazy loader. The goal is to generally improve efficiency and make dynamically-sized embeds such as tweets as nondisruptive as possible.
  • The size of dynamically-sized embeds (e.g. tweets) is cached locally in the browser. This will improve the user experience on repeat viewing or when the same embed is shown multiple times on a page.

  • Visible embeds are loaded as soon as possible. Previously, the lazy loader waited a tiny fraction of time (32 ms) before checking for visible embeds while the page is loading. Combined with the aforementioned caching, it can reduce and even eliminate Cumulative Layout Shift.

  • The visibility of all embeds in collapsed quotes is now checked to determine whether they should be loaded. Previously this only applied to regular-sized embeds such as YouTube videos, and has now been extended to all embeds. This means that an embedded tweet in a collapsed quote is not loaded unless it is at least partially visible.
Overloaded URL tags in the form [URL media=...] are now processed as and counted as [MEDIA] tags and should be subject to the same restrictions. Thanks to Xon for the helpful report.

JavaScript event listeners used for lazy loading are now passive and apply during the capture phase. This isn't expected to make a practical difference but it may help with inconsiderate third-party scripts that hijack events.

Note that support for XenForo 2.0 and 2.1 has become harder for me to guarantee and will be phased out in future releases. If you haven't upgraded to XenForo 2.2 yet, let me know.
Embedded tweets have been slightly restyled to show some sort of placeholder while the actual content is loading. The height of embedded tweets is now cached within the browser, which may improve the user experience on repeat viewings.
TikTok and WSHH have been updated.
Experimental support for Guzzle has been added, disabled by default.

Guzzle is a PHP library used by XenForo to retrieve data from external sources. This add-on uses native cURL calls for the same purpose. If this means anything to you and you want this add-on to use the same Guzzle client as XenForo, you can add the following to your config.php file:
$config['http']['s9e.client'] = 'guzzle';

Future versions of this add-on may default to using Guzzle if it proves beneficial.