https://www.youtube.com/get_video_info
Используйте сервис, который возвращает URLSearchParams -совместимого &
-разделенного строку различных параметров видео, включая title
.
function getYoutubeVideoTitle(id, callback) {
GM_xmlhttpRequest({
method: 'GET',
url: 'https://www.youtube.com/get_video_info?video_id=' + id,
onload: function(r) {
var encoded = (r.responseText.match(/(^|&)title=(.*?)(&|$)/) || [])[2] || '';
callback(decodeURIComponent(encoded.replace(/\+/g, ' ')));
}
});
}
getYoutubeVideoTitle('jE51HWPz1l8', function(title) {
console.log(title);
});
Specsavers котла Реклама - 2017
Чтобы получить все параметры в объекте разделить ответ на &
и разделить каждый элемент с помощью =
, как ключ/значение:
function getYoutubeVideoData(id, callback) {
GM_xmlhttpRequest({
method: 'GET',
url: 'https://www.youtube.com/get_video_info?video_id=' + id,
onload: function(response) {
var data = {};
response.responseText.split('&').forEach(function(param) {
param = param.split('=');
data[param[0]] = decodeURIComponent(param[1].replace(/\+/g, ' '));
});
callback(data);
}
}
}
Примечания.
В современных браузерах URLSearchParams обеспечивает гораздо более удобный доступ:
onload: (r) => callback(new URLSearchParams(r.responseText).get('title'));
onload: (r) => {
var data = {};
for (var entry of new URLSearchParams(r.responseText).entries())
data[entry[0]] = entry[1];
callback(data);
}
код не принимает на себя никаких дубликатов ключей в ответ, это верно для get_video_info службы.
Чтобы получить видео ссылки для загрузки и получения дополнительной информации в ответ на изменение запроса URL:
GM_xmlhttpRequest({
method: 'GET',
url: 'https://www.youtube.com/get_video_info?video_id=' + id +
'&hl=en_US&html5=1&el=embedded&eurl=' + encodeURIComponent(location.href),
Используя URLSearchParams, я затем использовать Greasemonkey позиционировать ответ, где я хочу его на веб-странице, как обычно? –
URLSearchParams - это просто удобство, которое улучшает ручное разделение строк, оно не связано ни с чем другим. – wOxxOm