Почему мой запрос отчета YouTube API Insight 404ing? - PullRequest
1 голос
/ 06 октября 2011

У меня есть скрипт Ruby, который загружает отчеты YouTube Insight для определенных видео в определенных диапазонах дат.Он авторизуется с помощью ClientLogin, извлекает <entry> данные XML для видео и извлекает из этих данных URL-адрес, указывающий на отчет CSV:

http://insight.youtube.com/video-analytics/csvreports
  ?query={VIDEO_ID}
  &type=v
  &starttime=1315353600000
  &endtime=1317772800000
  &user_starttime=1317168000000
  &user_endtime=1317772800000
  &region=world
  &token={API_TOKEN}
  &hl=en_US

Приведенный выше URL работает .Однако мне нужен отчет для определенного диапазона дат, а не для диапазона по умолчанию.

Запрашиваемый диапазон дат запроса отчета Insight устанавливается в параметрах user_starttime и user_endtime.(В приведенном выше случае по умолчанию это период с 2011-09-27 по 2011-10-04.) В документах API YouTube указано , что вы можете указать свой собственный диапазон дат (охватывающий промежуток времени до 28 дней).подставляя временные метки (в миллисекундах), которые представляют нужные вам даты.

Итак, почему следующий запрос 404?

http://insight.youtube.com/video-analytics/csvreports
  ?query={VIDEO_ID}
  &type=v
  &starttime=1315353600000
  &endtime=1317772800000
  &user_starttime=1307937600000
  &user_endtime=1308110400000
  &region=world
  &token={API_TOKEN}
  &hl=en_US

Диапазон дат выглядит нормально:

ruby > Time.at 1307937600
=> 2011-06-13 00:00:00 -0400 
ruby > Time.at 1308110400
=> 2011-06-15 00:00:00 -0400 

Тот факт, что URL "по умолчанию" работает, указывает на то, что я, должно быть, что-то не так делаю с этими значениями даты, но я не могу понять, что именно.Что я пропускаю?

1 Ответ

1 голос
/ 07 октября 2011

ОБНОВЛЕНИЕ 2 - 4 ноября 2011 г .:

В последнее время произошли изменения в протоколе API данных YouTube для данных Insight, и ответ ниже не является точным.

YouTube теперь разрешает диапазоны дат до 31 дней для одного запроса отчета Insight, и теперь они разрешают запросы, относящиеся к датам, начинающимся с 1 марта 2009 года. Документы теперь говорят:

You can adjust the date range for which a report contains data 
to a period of up to 31 days beginning no earlier than March 1, 2009. 

Это отличные новости.(Оставляя ниже для потомков.)


Я полагаю, я понял, почему вышеупомянутый запрос отчета Insight с настраиваемым диапазоном дат 404ing.Мне удалось получить отчет с произвольным диапазоном дат, например:

http://insight.youtube.com/video-analytics/csvreports
?query={VIDEO_ID}
&type=v
&starttime=1315353600000
&endtime=1317772800000
&user_starttime=1315627200000
&user_endtime=1315972800000
&region=world
&token={API_TOKEN}
&hl=en_US

В чем разница между этим (хорошим) URL-адресом и предыдущим (плохим) URL-адресом в моем вопросе выше?Что ж, мой пользовательский диапазон дат здесь, указанный в параметрах user_starttime и user_endtime , попадает в диапазон, установленный YouTube в starttime и endtime params .

Другими словами, starttime и endtime, по-видимому, представляют внешние границы любого пользовательского диапазона дат, возможного для этих типов запросов.

Поэтому, когда документы API YouTube говорят:

Вы можете настроить диапазон дат, для которого отчет содержит данные, на период до 28 дней

Что они означаютЯ полагаю, это:

  • Ваш диапазон дат не может span более 28 дней ... И ТАКЖЕ ...
  • Ваш диапазон дат не может выходить за пределы диапазона дат, начиная с 28 дней с самой последней даты, в которую в настоящее время доступны отчеты, о которых мы сообщаем вам через starttime и endtimeпараметры.

ОБНОВЛЕНИЕ:

В этой теме , YouTube API TЧлен eam говорит:

Значение времени начала следует рассматривать как абсолютную самую раннюю поддерживаемую дату начала, а конечное время - как абсолютную последнюю поддерживаемую дату окончания.Если вы попытаетесь установить для user_starttime что-то раньше, чем время начала, то вы будете запрашивать данные, которые датируются более чем 28 днями, и эти данные недоступны.

Этот точный текст должен бытьв документации.

...