Можно ли получить продолжительность (время) видео через API данных Youtube v3.0. Если так, то как?
user5160753 27 июл ’15 в 13:20 2015-07-27 13:20
2015-07-27 13:20
2 ответа
Вам нужно будет позвонить на видео-ресурс YouTube Data API после выполнения поискового вызова. Вы можете указать до 50 идентификаторов видео в поиске, поэтому вам не придется вызывать его для каждого элемента.
Вы захотите установить part=contentDetails, потому что продолжительность есть.
Например, следующий вызов:
https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0key=
Дает этот результат:
Время отформатировано в виде строки ISO 8601. PT означает длительность времени, 4M — 4 минуты, а 13S — 13 секунд.
Пожалуйста, обратитесь к этому вопросу для более подробной информации
user1978379 27 июл ’15 в 13:24 2015-07-27 13:24
2015-07-27 13:24
function converTime(d) < //ignore the «PT» part d = d.search(/PT/i) >-1? d.slice(2) : d; let h, m, s; //indexes of the letters h, m, s in the duration let hIndex = d.search(/h/i), mIndex = d.search(/m/i), sIndex = d.search(/s/i); //is h, m, s inside the duration let dContainsH = hIndex > -1, dContainsM = mIndex > -1, dContainsS = sIndex > -1; //setting h, m, s h = dContainsH? d.slice(0, hIndex) + «:» : «»; m = dContainsM? d.slice(dContainsH ? hIndex + 1 : 0, mIndex) : dContainsH? «0» : «0»; s = dContainsS? d.slice(dContainsM ? mIndex + 1 : hIndex + 1, sIndex) : «0»; //adding 0 before m or s s = (dContainsM || dContainsS) s < 10? «0» + s: s; m = (dContainsH || dContainsM) m < 10? «0» + m + «:» : m + «:»; return d !== «0S» ? h + m + s : «LIVE» >console.log(converTime(«PT6M7S»));
user10944954 29 дек ’19 в 12:25 2019-12-29 12:25
2019-12-29 12:25
Вот как я это сделал из.NET и C#.
YouTube Data API v3 Tutorial
Сначала включите часть «contentDetails»
var searchListRequest = youtubeService.Videos.List(«snippet,contentDetails»);
Затем преобразуйте длительность во что-то более программно управляемое следующим образом:
TimeSpan YouTubeDuration = System.Xml.XmlConvert.ToTimeSpan(searchResult.ContentDetails.Duration);
Я надеюсь, что это полезно
Источник: stackru.com
Youtube Data API | Комплект-1
Google предоставляет разработчику большой набор API на выбор. Каждая услуга, предоставляемая Google, имеет связанный API. Будучи одним из них, Youtube Data API очень прост в использовании и предоставляет такие функции, как —
- Искать видео
- Обрабатывайте видео, например, извлекайте информацию о видео, вставляйте видео, удаляйте видео и т. Д.
- Обработка подписок, например, список всех подписок, вставка или удаление подписки.
- Получение информации о комментариях, например об ответах на конкретный комментарий, идентифицированный с помощью parentId и т. Д.
В этой статье мы обсудим Google Youtube API. Выполните следующие действия, чтобы включить API и начать его использовать.
How to Get YouTube API Key 2023 | YouTube Data API v3
Есть два типа учетных данных: API-ключ и OAuth . OAuth предоставляет вам идентификатор клиента и секретный ключ в виде файла .json. OAuth обычно используется там, где требуется авторизация, например, в случае получения понравившихся видео пользователя. Поэтому для остальных случаев, когда авторизация не требуется, например, для поиска видео по ключевому слову или для поиска похожих видео и т. Д., Мы будем использовать API-ключ.
pip install —upgrade google-api-python-client
from apiclient.discovery import build
# Arguments that need to passed to the build function
DEVELOPER_KEY = «your_API_Key»
YOUTUBE_API_SERVICE_NAME = «youtube»
YOUTUBE_API_VERSION = «v3»
# creating Youtube Resource Object
youtube_object = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey = DEVELOPER_KEY)
def youtube_search_keyword(query, max_results):
# calling the search.list method to
# retrieve youtube search results
search_keyword = youtube_object.search(). list (q = query, part = «id, snippet» ,
maxResults = max_results).execute()
# extracting the results from search response
results = search_keyword.get( «items» , [])
# empty list to store video,
# channel, playlist metadata
# extracting required info from each result object
for result in results:
# video result object
if result[ ‘id’ ][ ‘kind’ ] = = «youtube# video» :
videos.append( «% s (% s) (% s) (% s)» % (result[ «snippet» ][ «title» ],
result[ «id» ][ «videoId» ], result[ ‘snippet’ ][ ‘description’ ],
result[ ‘snippet’ ][ ‘thumbnails’ ][ ‘default’ ][ ‘url’ ]))
# playlist result object
elif result[ ‘id’ ][ ‘kind’ ] = = «youtube# playlist» :
playlists.append( «% s (% s) (% s) (% s)» % (result[ «snippet» ][ «title» ],
result[ «id» ][ «playlistId» ],
result[ ‘snippet’ ][ ‘description’ ],
result[ ‘snippet’ ][ ‘thumbnails’ ][ ‘default’ ][ ‘url’ ]))
# channel result object
elif result[ ‘id’ ][ ‘kind’ ] = = «youtube# channel» :
channels.append( «% s (% s) (% s) (% s)» % (result[ «snippet» ][ «title» ],
result[ «id» ][ «channelId» ],
result[ ‘snippet’ ][ ‘description’ ],
result[ ‘snippet’ ][ ‘thumbnails’ ][ ‘default’ ][ ‘url’ ]))
print ( «Videos: » , » » .join(videos), » » )
print ( «Channels: » , » » .join(channels), » » )
print ( «Playlists: » , » » .join(playlists), » » )
if __name__ = = «__main__» :
youtube_search_keyword( ‘Geeksforgeeks’ , max_results = 10 )
Выход:
Функция поиска по местоположению: в этом примере извлекаются результаты, связанные с ключевым словом «Geeksforgeeks». Запрос извлекает 5 лучших результатов в пределах 100 км (заданных locationRadius ) от точки, указанной значением параметра location.
from apiclient.discovery import build
# Arguments that need to passed to the build function
DEVELOPER_KEY = «your_API_Key»
YOUTUBE_API_SERVICE_NAME = «youtube»
YOUTUBE_API_VERSION = «v3»
# creating Youtube Resource Object
youtube_object = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey = DEVELOPER_KEY)
def youtube_search_location(query, max_results = 5 ):
# calling the search.list method to retrieve youtube search results
search_location = youtube_object.search(). list (q = query, type = ‘video’ ,
location = ‘20.593683, 78.962883’ ,
locationRadius = ‘100km’ , part = «id, snippet» ,
maxResults = max_results).execute()
# extracting the results from search response
results = search_location.get( «items» , [])
# empty list to store video metadata
# extracting required info from each result object
for result in results:
# video result object
videos.append(result[ «id» ][ «videoId» ])
video_ids = «, » .join(videos)
video_response = youtube_object.videos(). list ( id = video_ids, part = ‘snippet,
recordingDetails’).execute()
search_videos = []
for video_result in video_response.get( «items» , []):
search_videos.append( «% s, (% s, % s)» % (video_result[ «snippet» ][ «title» ],
video_result[ «recordingDetails» ][ «location» ][ «latitude» ],
video_result[ «recordingDetails» ][ «location» ][ «longitude» ]))
print ( «Videos: » , » » .join(search_videos), » » )
if __name__ = = «__main__» :
youtube_search_location( ‘Geeksforgeeks’ , max_results = 5 )
Выход:
Примечание. location — это строка, определяющая координаты широты / долготы географического местоположения.
- Параметр местоположения определяет точку в центре области.
- Параметр locationRadius указывает максимальное расстояние, на котором местоположение, связанное с видео, может находиться от этой точки, чтобы видео по-прежнему было включено в результаты поиска.
type может быть только видео в этом типе метода поиска. В этом примере мы использовали координаты широты и долготы для Дели, Индия. Примечание. В приведенном выше примере мы использовали только ограниченные параметры. Есть много других параметров, которые можно установить, и если они не установлены, то их значение по умолчанию можно найти в документации по списку поиска Youtube. Пожалуйста, обратитесь к документации, чтобы получить полное представление о доступных параметрах. Ссылки: https://developers.google.com/youtube/v3/docs/search/list Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы. Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение — базовый уровень.
Источник: progler.ru
YouTubе прекращает работу с Data API v2 0
Компания Google, анонсировавшая в марте прошлого года переход на новый YouTube Data API v3, заявила в своем корпоративном блоге, что, начиная с первой половины мая, использование API v2 для приложений прекращается. Пользователи будут видеть оповещающее об этом сообщение на протяжении пары недель.
С 20 апреля, веб-приложения, которые использовали API-функции v2, перестали работать, а последним видео стал многоязычный ролик, рассказывающий пользователям о прекращение поддержки устройств, которые использовали устаревшие API. Видео сопровождается ссылкой на специализированную страницу «youtube.com/devicesupport» с более подробным описанием произошедшего. В том числе и информацией о том, что произошедшее затронуло «некоторые устройства, выпущенные в 2012 году и ранее, в том числе с поддержкой Google TV, iOS, а также телевизоры и проигрыватели Blu-Ray дисков Sony/Panasonic».
Но, больше всех пострадали веб-сервисы, использующие выгрузку информации о видео в формате XML. В новых YouTube API v3 ему на смену пришел формат JSON. При этом доступ к видео-материалам лимитирован количеством обращений в сутки и единицу времени, для доступа к собственному, но приватному видео требуется OAuth 2.0 авторизация, а для публичных видео-роликов достаточно получить API-ключ, которые прикрепляется к конкретным IP-адресам.
Кроме того, выгрузка информации о видео в плейлистах производится постранично, с количеством не более 50 на страницу. Для увеличения лимита, Google заботливо предлагает оплатить свои системные ресурсы. Между тем, трансляция в формате XML сохранилась лишь для канала, при этом в нем отображается список последних добавленных видеороликов. Рядовым пользователям, просмотревшим видео о моральном устаревание их устройств, рекомендуется произвести обновление программного обеспечения, либо отказаться от сервисов Google.
Источник: hd-mediaplayers.ru