Я пытался найти видео, соответствующие одному из нескольких ключевых слов на определенном канале, к которому я подключен. Я использую Officiel PHP SDK и вот что у меня есть:
//client is a connected Google_Client
$youtube = new Google_Service_YouTube($client);
$pageToken = null;
$res = $youtube->search->listSearch(
'id, snippet', [
'maxResults' => 50,
'q' => "foo|bar",
'forMine' => true,
'type' => 'video',
'pageToken' => $pageToken
]
);
Это вернет только видео, содержащие ОБА «foo» и «bar», вместо ЛЮБЫХ «foo» или «bar». Я также пробовал «foo | bar», «foo% 7Cbar», «urlencode (» foo | bar) «,» foo || bar «, но ничего из этого не дает мне то, что я хочу.
Я что-то пропустил ?
Благодарю.
От документация:
Для поиска видео, подходящего под «лодку» или «под парусом», установите q
значение параметра на лодке | парусный спорт.Обратите внимание, что символ канала должен быть экранирован URL при отправке в
Ваш запрос API. Значение экранированного URL для символа канала равно% 7C.
Только что проверил ваш случай, и он работает как ожидалось, title
столбец содержит «foo» ИЛИ «bar».
"title": "KING OF THE BAR 2015 - Ultimate Calisthenics Battle!",
...
"title": "Foo Fighters",
...
"title": "Foo Fighters - Something From Nothing",
...
"title": "Browning BAR M1918",
...
"title": "Bar \"u Szwagra\" - Video Dowcip",
Итак, проблема должна быть в PHP SDK.
Других решений пока нет …