Парсер клипов для mse-script

Locorez

Эксперт
Клиент
Сообщения
244
Реакции
153
Небольшой хак позволит парсить и вставлять видео с youtube по поисковым запросам на вашем сайте.

Для начала нужно получить YouTube API key. В гугле полно подробных инструкций и видео, поэтому заострять на этом внимание не буду.
Предположим, что ключ вы уже получили:

Открываем файл core/search.php, находим
PHP:
# Собрать шаблон и отобразить страницу
$this->loadViews($this->constructData());
ВЫШЕ вставляем:
PHP:
$tubeKey = 'ВАШ_API_KEY';
$prepareQuery = urlencode($this->query);
if ($this->MSE->config['data_cache'])
{
   $serverHostName = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
   $cacheKey = $serverHostName.'_'.md5($prepareQuery.'video');
   $cacheResults = \liw\App\Cache::checkCache($cacheKey);
   if ($cacheResults) $this->videoId = json_decode($cacheResults, TRUE);
}

if (!isset($cacheResults) || !$cacheResults){
   $searchVideoResult = @file_get_contents ("https://content.googleapis.com/youtube/v3/search?q={$prepareQuery}&maxResults=1&part=snippet&key={$tubeKey}");

   if ($searchVideoResult)
   {
      $youTubeData = @json_decode($searchVideoResult, true);
      $this->videoId = $youTubeData['items'][0]['id']['videoId'];
      if ($this->MSE->config['data_cache'])  \liw\App\Cache::SetCache($cacheKey, $this->videoId);
   }
}
Открываем папку с вашим шаблоном, находим файл search.tpl, в нужном месте (например после {include file="track-list.tpl"}) вставляем:
HTML:
{if $videoId|default:''}
    <br>
    <br>
    <h2>Видео по запросу {$query}</h2>
    <div class="frame-tube">
        <iframe class='frame-tube__video' src='https://www.youtube.com/embed/{$videoId}' frameborder='0' allow='autoplay; encrypted-media' allowfullscreen></iframe>
    </div>
    {/if}
Результат:
 
Последнее редактирование модератором:

Bad Gateway

Местный житель
Клиент
Сообщения
42
Реакции
6
Классно, только боты быстро сжирают лимиты youtube (((
 

Rus

Эксперт
Клиент
Сообщения
161
Реакции
14
Было бы круто что бы можно было скачивать.
 

Locorez

Эксперт
Клиент
Сообщения
244
Реакции
153
@pitinc Я думаю это немного другая кухня, чуваки хотя скачать именно музыку (mp3) c ютуба, а не видеоклип к песни.
 

pitinc

Ветеран
Клиент
Сообщения
92
Реакции
19
желающие скачать видео тоже есть
Screenshot_7.png
А по wordstat еще больше показывает

Сам удивлен
 

madpitbull

Бывалый
Клиент
Сообщения
57
Реакции
4
MSE 2.3 Все сделал по инструкции, перепробовал уже 3 youtube ключа, кеш чистил, но нет клипа на сайте=)
 

Locorez

Эксперт
Клиент
Сообщения
244
Реакции
153
@madpitbull

Перед:
PHP:
if ($searchVideoResult)
Вставь:
PHP:
var_dump($searchVideoResult);
Что выведет?
 

Locorez

Эксперт
Клиент
Сообщения
244
Реакции
153
На версии cms 3.0 работает?
Да. Если хочешь сделать вывод клипа на странице отдельного трека, нужно немного поправить код.
Найти в core/track.php:

PHP:
# Собрать шаблон и отобразить страницу
$this->loadViews($this->constructData());
ВЫШЕ вставить:

PHP:
$tubeKey = 'ВАШ_API_KEY';
$prepareQuery = urlencode($this->track["artist"] . " - " . $this->track["name"]);
$searchVideoResult = file_get_contents ("https://content.googleapis.com/youtube/v3/search?q={$prepareQuery}&maxResults=1&part=snippet&key={$tubeKey}");
if ($searchVideoResult)
{
   $youTubeData = json_decode($searchVideoResult, true);
   $this->videoId = $youTubeData['items'][0]['id']['videoId'];
}
На работоспособность не проверял, может что-то не работать.
 

madpitbull

Бывалый
Клиент
Сообщения
57
Реакции
4
@madpitbull

Перед:
PHP:
if ($searchVideoResult)
Вставь:
PHP:
var_dump($searchVideoResult);
Что выведет?
В шапке сайта появилось такое
Код:
string(1275) "{ "kind": "youtube#searchListResponse", "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/TyM7qpiAcUMNvlMn7ydtCHFusUY\"", "nextPageToken": "CAEQAA", "regionCode": "UA", "pageInfo": { "totalResults": 1000000, "resultsPerPage": 1 }, "items": [ { "kind": "youtube#searchResult", "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/oWBpaNfZNskTMNX8C_GmefSuhnU\"", "id": { "kind": "youtube#video", "videoId": "dD3RogNSZC4" }, "snippet": { "publishedAt": "2018-10-25T16:30:22.000Z", "channelId": "UCraVQW3OiTgfOcsIfS8-lqA", "title": "RASA - Baby", "description": "Мы долго думали какой снять клип, но решили показать вам как все было на самом деле. Спасибо вам большое...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/dD3RogNSZC4/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/dD3RogNSZC4/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/dD3RogNSZC4/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "RASA MUSIC", "liveBroadcastContent": "none" } } ] } "
 

ovozz

Эксперт
Клиент
Сообщения
300
Реакции
86
@madpitbull судя по ответу клип парсится, а в шаблоне все правильно прописано?
 
Сверху