I've recently found a simple package that helps to transform any URL into embeddable HTML, the best examples are Youtube and Vimeo videos.
Let's imagine you have a video input text field (not uploadable video but URL), which you than need to transform into HTML code, depending on the platform.
So, some users may specify Youtube video:

Others may add a link from Vimeo platform:

And in the final result, you probably want both to be working, like in this table:

We have a Laravel package to help: KaneCohen/embed
The usage is pretty simple.
Step 1. Installation.
Add to composer.json "require" section:
"cohensive/embed": "5.5.*"
Step 2. config/app.php: add provider and alias
// ... Providers array ...
Cohensive\Embed\EmbedServiceProvider::class,
// ... Aliases array ...
'Embed' => Cohensive\Embed\Facades\Embed::class,
Step 3. Eloquent Accessor Field
Let's attach the embedded HTML to an accessor field of app/Product.php model:
use Cohensive\Embed\Facades\Embed;
class Product extends Model
{
    public function getVideoHtmlAttribute()
    {
        $embed = Embed::make($this->video)->parseUrl();
        if (!$embed)
            return '';
        $embed->setAttribute(['width' => 400]);
        return $embed->getHtml();
    }
}
Step 4. View Embedded HTML
In the Blade code, you just need to view this:
{!! $product->video_html !!}
I haven't tested, but the package has more support for embeddable platforms, see its configuration file:
- youtubePlaylistVideo
 - youtubePlaylist
 - youtube
 - liveleak
 - vimeo
 - dailymotion
 - gametrailers
 - ign
 - vine
 - coub
 - kickstarter
 - ustream
 - twitchArchive
 - twitchArchiveChapter
 - twitch
 - html5video
 - gfycat
 - web.tv
 
                                                    
                                                    
                                                    
No comments or questions yet...