I have checked and read lot of post about one single issue that is far more complicated than it seems.
I have a website that uses a lot of videos taken from wwebsite as on the internet ^^ (services like youtube, vimeo, videobuzzy, etc) and we would like to generate on the fly a thumbnail of the embedded video.
Each service uses its own API so I should adapt code for each, which it far too much code and I could never manage every service.
A webserver propose something like that : http://embed.ly but I tried them and, as exemple, videos from videobuzzy doesn’t work. So that’s a partial solution.
Another solution would be to use a screenshot service that could request the video’s URL, render it, take a snapshot and generate an image. Tempting, but results tends to add delays, and I have to find a snapshot service and generate the code (well, this could be the fun part).
The simpliest would be to take a screen capture and create an image ourselves, then upload it.
I would rather propose something more user-friendly but I have no more clue.
Is anyone has some advice on it and do I get the picture right ?
If I could, instead of the thumbnails, just embed the video (usually an iframe) into a with specific size, that could do the trick…
You can use the oEmbed functionality baked into WordPress. Typically any video host on this list will return a thumbnail to you using oembed.
Here is a list of default providers that WordPress uses for auto embedding in the content area. I’ve included non-video sources as well for the convenience of others.
The full list of possible providers is documented at the WordPress codex under:
Embeds – Okay, So What Sites Can I Embed From?
Select your provider then use the following to get your video information.
require_once(ABSPATH.'wp-includes/class-oembed.php'); $oembed= new WP_oEmbed; $url="http://www.youtube.com/watch?v=oHg5SJYRHA0"; //As noted in the comments below, you can auto-detect the video provider with the following $provider = $oembed->discover($url); //$provider="http://www.youtube.com/oembed"; $video = $oembed->fetch($provider, $url, array('width' => 300, 'height' => 175)); $title = $video->title; $html = $video->html; $thumb = $video->thumbnail_url;
I realize VideoBuzzy is not on the list. It appears to be a YouTube knockoff site. You should ask them if they have oembed protocols. If they don’t, you can register a non oembed handler by using
Hope this helps!