Detect broken videos from YouTube, DailyMotion, MixCloud, SoundCloud, Vimeo and more!
You have a website with videos embedded from YouTube or similar, but over time some of those videos are removed from that site for some reason and you have no way of knowing! Avoid showing broken video content to your visitors with Video Link Checker – it runs in the background always protecting your site.
Video Link Checker is a WordPress plugin that will automatically validate videos on your site from these top video sites:
It does this by extracting video IDs from each post and querying the video site APIs to ensure those IDs are still valid. This is a MUST for any video site that wants to retain their visitors and not annoy them with broken content. Other scripts try to validate with HTML checks, which will NOT work. Use Video Link Checker for 100% results!
Video Link Checker can also detect when a YouTube video is or becomes blocked in your target region(s) for whatever reason.
The truth is videos are uploaded and removed or blocked frequently – either by the user or the site itself for usage/copyright violations. If this happens to videos you have embedded on your site, your visitors are going to see broken content instead of the video they expected. Don’t let that happen.
- You can scan on demand or let the plugin automatically scan on its own in the background, notifying you of any issues.
- Numerous options to support custom post types, post statuses, embedded urls, video links, custom meta fields, email reports, and more.
- Plug and play! The plugin comes with default API keys for YouTube, SoundCloud and Vimeo – no need to register for your own unless you want to.
- Receive email reports whenever a scan is complete. Always know your videos are good.
Quick video on how the Video Link Checker works:
= 2.2 Released October 31st, 2017 =
- set PUC to plugins_loaded hook
- Workaround for PHP 7.1+ file_get_contents bug with negative offset less than start of file.
- OpenLoad: recognize open ended urls.
- Ignore adf.ly prefixes on video links so they can be identified.
= 2.1 Released October 3rd, 2017 =
- Bugfix for ‘Check for Updates’ hook used in 2.0 release.
- Bugfix for recognizing YouTube urls with period in a parameter.
- Bugfix for displaying OpenLoad selection in Scan Options.
= 2.0 Released August 27th, 2017 =
- Added support for checking OpenLoad.co video links.
- Vimeo: will report private or whitelisted videos as broken.
- Vimeo: will detect ‘not found’ error messages as broken.
- YouTube: identify playlists even when keyword ‘playlist’ is missing from link.
- YouTube: VLC will report playlists with 0 videos as broken with status ‘EMPTY’.
- VLC will recover if its scheduled event is removed by another entity.
- Check for updates on WP schedule instead of plugin_init.
= 1.8 Released June 28th, 2017 =
- YouTube updated regex to handle all possible parameters.
- YouTube updated regex to handle video ID with playlist ID.
- Fix for when Vimeo returns error message instead of error code.
- Can now specify hours between scans with decimals (0.5 etc.)
- Switched mail() to wp_email() to allow user to hook in if needed.
- Added option to give a notice for posts where no videos were detected.
= 1.7 Released February 28th, 2017 =
- Added Report Option to expand YouTube playlists and check each video.
- Added filter ‘vlc_post_content’ for user to modify post content.
- Added Report Option to consider YouTube videos as broken if they are blocked in specified region(s).
= 1.6 Released February 7th, 2017 =
- YouTube now checks for any video Region Restrictions.
- Added advanced meta box on Edit pages to scan individual posts.
- Added API support for GiantBomb videos.
= 1.5.7 Released January 18th, 2017 =
- Verify post edit link is valid before adding to scan report.
= 1.5.6 Released January 12th, 2017 =
- Changed email charset to UTF-8.
= 1.5.5 Released December 5th, 2016 =
- Added Report Option to change email ‘From’ field.
= 1.5.4 Released November 22nd, 2016 =
- Added option to skip verification of specified videoIDs.
- Bugfix: Increase max log report db size from 64k to 16mb.
= 1.5.3 Released October 28th, 2016 =
- Bugfix: Clear Log button.
= 1.5.2 Released October 23rd, 2016 =
- Bugfix: Recognize custom meta fields for premium themes that are stored as non-json arrays.
= 1.5.1 Released October 11th, 2016 =
- Valid YouTube playlists with 0 public videos now reported as broken with status EMPTY.
- Replaced Logfiles with Log Reports that are saved to database.
- Added new ‘Report Option’ : ‘Log Reports to save’. Default is 1.
= 1.5 Released Aug 16th, 2016 =
- Vimeo: Added variable delay between requests based on access token’s Vimeo rate limit enacted Aug 9th. Highly recommend getting your own Vimeo App access token. Please see Docs->API Options for more details.
- moved usable hook for video IDs to apply to ‘any’ custom meta field
= 1.4.3 Released June 13th, 2016 =
- added usable hook in case theme only stores the ID in custom meta fields
= 1.4.2 Released April 10th, 2016 =
- Ensure meta fields search for both video links and video embeds.
= 1.4.1 Released March 28th, 2016 =
- function check for apache_get_modules for certain PHP builds.
= 1.4 Released March 27th, 2016 =
- if changing post status, stop WordPress KSES from stripping suspect code.
- show debug/error messages if running from command line.
- changed ‘vlc_scan_posts’ filter and added ‘vlc_scan_max_posts’ filter.
- Settings: show info message if mod_php5 not found.
- replaced curl with wp_remote_get
- pages will now be checked separately if a category is selected.
= 1.3.3 Released February 23rd, 2016 =
- Report: Do not show edit link if broken post sent to Trash.
- Report: Show post status if it is not published.
- Bugfix: don’t report playlistIDs if API Error.
- Report curl error if unable to connect to Envato API.
= 1.3.2 Released January 26th, 2016 =
- Bugfix: use correct post ID when changing post status.
= 1.3.1 Released December 30th, 2015 =
- Added DISABLE_WP_CRON check when trying to enable Scheduler.
- Bugfix: include_once plugin.php for is_plugin_active() via cron.
= 1.3 Released December 4th, 2015 =
- Added ability to select posts by category.
- Added ‘su_youtube_advanced’ to recognized embed shortcodes.
- If Video API call returns error (such as timeout), set video status to API ERROR.
- Envato API class tweak
= 1.2 Released November 15th, 2015 =
- Added command line scan available to avoid hardset mod_fcgid timeouts.
- Tweak for embed shortcode url detection.
- Added support for custom post stati.
- Added shortcode check to verify it is used for embedding.
- Recognized embed shortcodes: embed, video, jwplayer, fvplayer, embedyt, flowplayer, videojs, mbYTPlayer.
- Added filter ‘vlc_embed_shortcodes’ to add custom shortcodes recognized as embeds.
- Fix for determining single line urls as embeds.
- filter vlc_scan_posts tweaked.
- Data saved to tmp files instead of memory.
- Plugin will automatically extend PHP max script time as needed using mod_php.
- Will try to create empty logfile if it does not exist.
= 1.1 Released November 2nd, 2015 =
- Added YouTube status notification for unlisted yet still valid videos.
- Added Plugin Update Checker for automatic updates.
- Separated Options into tabs for easier management.
- Added YouTube check for embeddable boolean value.
- Added support for [WordPress Video Gallery](https://wordpress.org/plugins/contus-video-gallery/).
-  links work directly in scan report if logged in.
- Email reports will be sent FROM the admin email specified in WordPress Settings->General->Email Address.
- Buttons for support and review. Changed buttons to primary color.
- Removed rawurldecode call on content. Allow hexcodes in regex patterns.
- MixCloud – tweak regex pattern for !thumbnail subdomain.
= 1.0 Released September 22nd, 2015 =