Closed tomaszkane closed 3 years ago
Hi @tomaszkane !
You are right, Embera doesnt return the video_id, but that is because youtube does not do it either. Check this request for example https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=J---aiyznGQ&format=json
However you can use filters and fetch the video_id and return it in the response if you really need it.
$embera = new Embera(...........);
$embera->addFilter(function ($response) {
if (strtolower($response['embera_provider_name']) == 'youtube' && preg_match('~/embed/(.+)\?feature=oembed~', $response['html'], $matches)) {
$response['video_id'] = $matches['1'];
}
return $response;
});
var_dump($embera->getUrlData('https://www.youtube.com/watch?v=J---aiyznGQ'));
Something like that should work. The code is untested but you get the idea...
Let me know if that helps..
Hi,
yes I know, YT don't return video_id
. But why Embera not adding this information to (new Embera())->getUrlData($videoUrl);
by own / automatically? ID always must be present in given URI, so add it to results from getUrlData()
?
BTW, thanks for simpler solution for get this is (filter instead of long regexp).
Hi @tomaszkane ! I am glad the filter option worked for you!
In regards to adding the video_id into the Embera response for Youtube, I dont think I will add it. I want to respect the endpoint response as much as possible, only on a few providers I modify the html response, but I mostly want to leave the response as close as possible to the original.
Perhaps if many users ask for this functionality to be added, I'll consider doing it, but for now, I think with filters you have the option to get the info you need for your usecase. Filters are very versatile since it allows access to the raw response.
Embera actually don't return
video_id
for YT URL like https://www.youtube.com/watch?v=_wkhNDiofsYHow about implement some regexp for this? https://stackoverflow.com/a/17030234/1829368