#python #youtube #youtube-api
#python #YouTube #youtube-api
Вопрос:
Я использую Youtube API для поиска с использованием запроса по ключевому слову:
import gdata.youtube
import gdata.youtube.service
def youtube_query(query_text,
max_results=50,
start_index=1,
racy='exclude',
orderby='relevance'):
client = gdata.youtube.service.YouTubeService()
query = gdata.youtube.service.YouTubeVideoQuery()
query.vq = query_text
query.max_results = max_results
query.start_index = start_index
query.racy = racy
#query.format = 5
query.orderby = orderby
feed = client.YouTubeQuery(query)
resultsCount = int(feed.total_results.text)
entries = []
try:
while resultsCount > int(query.start_index):
print repr(feed.entry)
entries = feed.entry
query.start_index = int(query.start_index) int(query.max_results)
feed = client.YouTubeQuery(query)
except gdata.service.RequestError:
#
# Cannot request beyond 1000 items.
#
pass
return entries
Каждая запись является видеозаписью с YouTube.
Дата загрузки каждого видео обязательно должна быть доступна, поскольку она отображается для каждого видео:
Мне также нужно время. Кто-нибудь знает, можно ли это сделать?
Ответ №1:
Вы можете использовать entry.published.text
атрибут:
import datetime
import time
feed = client.YouTubeQuery(query)
for entry in feed.entry:
_tmp = time.strptime(entry.published.text, '%Y-%m-%dT%H:%M:%S.000Z')
ptime = datetime.datetime(*_tmp[:6])
print ptime
print ptime.time()
Вывод:
2010-01-27 19:42:42
19:42:42
Ответ №2:
Вы также можете использовать функцию parse_date в библиотеке iso8601, которая вернет объект date:
import iso8601
uploaded_time = iso8601.parse_date("2007-01-25T12:00:00Z")
print uploaded_time
Вывод:
datetime.datetime(2013, 8, 21, 20, 54, 34, tzinfo=<iso8601.iso8601.Utc object at 0x1045d7b10>)