samayamx / embed-extractor
This package is abandoned and no longer maintained.
The author suggests using the embed/embed package instead.
Prototype to extract basic embed properties from 3rd party content
0.3.3
2021-02-09 22:23 UTC
Requires
- ext-curl: *
- ext-json: *
- symfony/dom-crawler: ^5.1
Requires (Dev)
- phpunit/phpunit: ^9.1
README
Simple class to extract properties for embedding 3rd party resources supporting OEmbed protocol.
Currently we support only resources with Discovery links
installation
composer require samayamx/embed-extractor
requirements
- cURL to get resources
- ext-json to extract data from oembed response
example
You can use this simple service in a controller without too much hassle:
use Samaya\Embed\Extract; $extractor = new Extract( 'User-Agent-Cool', '1234567890123456', '0123456789abcdef0123456789abcdef' ); Route::get('/embed', function (Request $request) use ($extractor) { $url = $request->get('url'); try { $image = $extractor->getImage($url); $html = $extractor->getHtml($url); return response()->json(compact('url', 'html', 'image')); } catch (\DomainException $domainException) { // for Facebook "OpenGraph" errors return response()->json( ['message' => $domainException->getMessage()], $domainException->getCode() ); } catch (\Exception $exception) { // handle other exceptions as well return response( $exception->getMessage(), $exception->getCode() ); } });
If you prefer, you can use the provided Laravel facade or configuration to provide the service with required parameters:
use Samaya\Embed\Extract; // injected into the action handler: Route::get('/embed', function (Extract $extractor, Request $request) { // ... }); use Samaya\Embed\OEmbedExtract; // using the facade $image = OEmbedExtract::getImage($url); $html = OEmbedExtract::getHtml($url);
configuration with Laravel
To use the provided facade or automatic service instantiation, you provide the required secrets in environment and/or published configuration.
See .env.example
for an example of the default environment variables.
Publish the configuration if you need to tweak the identifiers to avoid collision with another package:
php artisan vendor:publish --provider=Samaya\\Embed\\OEmbedExtractProvider --tag=config
supports
- Vimeo
- Youtube
- Samaya Share