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

Locorez

Местный житель
Клиент
Сообщения
244
Реакции
153
Баллы
43
Небольшой хак позволит парсить и вставлять видео с 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
Баллы
8
Классно, только боты быстро сжирают лимиты youtube (((
 

Rus

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

Locorez

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

pitinc

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

Сам удивлен
 

madpitbull

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

Locorez

Местный житель
Клиент
Сообщения
244
Реакции
153
Баллы
43
@madpitbull

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

night_music

Местный житель
Клиент
Сообщения
237
Реакции
52
Баллы
28
На версии cms 3.0 работает?
 

Locorez

Местный житель
Клиент
Сообщения
244
Реакции
153
Баллы
43
На версии 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'];
}
На работоспособность не проверял, может что-то не работать.
 

night_music

Местный житель
Клиент
Сообщения
237
Реакции
52
Баллы
28
Да. Если хочешь сделать вывод клипа на странице отдельного трека, нужно немного поправить код.
Найти в core/track.php:
Не работает, пробовал на странице трека и на странице поиска.
 

madpitbull

Активист
Клиент
Сообщения
57
Реакции
4
Баллы
8
@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
Баллы
28
@madpitbull судя по ответу клип парсится, а в шаблоне все правильно прописано?
 
Сверху