YoutubeChannels v3.0.28beta

Готовые конфигурации подкастов (RSS и Web)
Post Reply
Vadim_S
Posts: 7
Joined: Sun Aug 03, 2014 9:36 pm

YoutubeChannels v3.0.28beta

Post by Vadim_S »

Подкаст YoutubeChannels создан на основе ранее существовавшего на этом форуме подкасте "Youtube" и имеет следующие особенности:

1. Возможность добавлять канал/пользователя, плейлист, видео-ролик, список плейлистов определенного канала, список каналов по поисковой строке
2. В настройках можно включить "Дополнительные видео". Это дополнительные ролики, ссылки на которые есть в описании к видео
3. Возможность настраивать имена роликов по заданному шаблону
4. Возможность замены части текста в названии ролика другим текстом.
5. Видео добавляется непосредственно в папке, которую создал пользователь
6. Проставленные пользователем 5-звездочные рейтинги к видео сохраняются

Установка:
Перетащить файл YoutubeChannels_v3.0.28.beta.hdf в окно программы Home Media Server (HMS) или нажать правую кнопку мыши на "Подкасты"/"Загрузить из файла"

Установка и Настройка подкаста:
1. Нажимаем правую кнопку мыши на подкаст YoutubeChannel_v3/Добавить подкаст
2. В поле "Заголовок" вводим любое название подкаста
3. В поле "Ссылка" вводим скопированную ссылку из Youtube (это может быть канал, user, плейлист, ссылка на видео)
4. В "Дополнительных параметрах" меняем настройки (если необходимо).
5. Нажимаем "OK"

Пример1:
Заголовок: Simon's cat
Ссылка: http://youtube.com/user/simonscat
Найдет все видео из канала simonscat

Пример2:
Заголовок: Плейлисты канала Mysyanyas
Ссылка: http://www.youtube.com/user/Masyanyas/playlists
Найдет все плейлисты из канала Masyanyas

Дополнительные параметры:
--maxresults - Максимальное кол-во загружаемого видео.
Допустимые значения: 1-50
По умолчанию: 50

--safesearch - Указывает, должны ли результаты поиска включать не только закрытый, но и стандартный контент.
Допустимые значения: none | moderate | strict
По умолчанию: moderate

--orderby - Сортировка
Допустимые значения: relevance | date| viewCount | rating | title
По умолчанию: date

--replacefrom - Замена текста (Блок №1). Что заменить
По умолчанию: ''

--replaceto - Замена текста (Блок №1) На что заменить
По умолчанию: ''

Также доступны еще 2 блока замены 2 и 3:
--replacefrom2
--replaceto2
--replacefrom3
--replaceto3

--pattern - Шаблон для наименования роликов.
Доступные переменные:
{num} - Сквозной порядковый номер
{num0} - Тоже что и {num} но с ведущим нулем
{title} - Наименование Youtube
{title,20} - Наименование усеченное до 20 символов
{published} - Дата публикации
{pubyear} - Год из даты публикации
{pubyear2} - Две последние цифры года
{pubmonth} - Месяц из даты публикации
{pubday} - День из даты публикации
{position} - Позиция ролика в пределах одной страницы
{position0} - Тоже что и {position} только с ведущим нулем
{channel} - Тоже что и {position} только с ведущим нулем
По умолчанию: '[{num0}] {title} ({published})'

--dopvideo - Дополнительные материалы. Часто в описании к Youtube роликам помещают ссылки на другие видео, связанные с данным. При включении данной настройки, добавляется папка "Дополнительные материалы" в которой создаются папки по именам основных роликов. В них и будут находится дополнительные видео.
Допустимые значения: on | off
По умолчанию: off

--dopvideomaxresults - Максимальное кол-во дополнительных материалов
Допустимые значения: 1-50
По умолчанию: 25

--dopvideopattern - Шаблон для именования дополнительных материалов
Доступные переменные:
{num} - Порядковый номер
{num0} - Тоже что и {num} но с ведущим нулем
{title} - Наименование Youtube ролика
{title,20} - Наименование усеченное до 20 символов
{published} - Дата публикации
{pubyear} - Год из даты публикации
{pubyear2} - 2 последние цифры года
{pubmonth} - Месяц из даты публикации
{pubday} - День из даты публикации
{channel} - Канал
По умолчанию: '{num0} {title} ({published})'

--playlistpattern - Шаблон для именования плейлистов (при использовании типа playlists)
По умолчанию: ''

--channelpattern - Шаблон для именования каналов (при использовании типа channels)
По умолчанию: ''


--publishedafter - Видео опубликованные после указанной даты
Пример: --publishedafter=2014-12-28T00:00:00Z

--publishedbefore - Видео опубликованные до указанной даты
Пример: publishedbefore=2015-03-01T00:00:00Z

--relevancelanguage - Предпочтительный язык роликов
При поиске видео и настройке --relevancelanguage=ru в результате будут показаны видео на русском языке

--videodimension - 2d/3d видео
Допустимые значения: any | 2d | 3d
По умолчанию: any

--videodefinition - Качество видео
Допустимые значения: any | high | standard
По умолчанию: any

--videoduration - Длина видео
Допустимые значения: any | long | medium | short
По умолчанию: any

--delemptybrackets - Удалять пустые квадратные скобки.
По умолчанию: off

--maxheight - Максимальное разрешение видео
По умолчанию: 1080

--getfilesize - Получение размера видеофайла перед просмотром видео (отключено для ускорение загрузки)
По умолчанию: off
--gettimelength - Получение времени видеоролика перед просмотром видео (включено для возможности перемотки роликов)
По умолчанию: on

--backupstars - Параметр разрешает сохранение оценок видео (5-звездочный рейтинг, который проставляется пользователем в колонке "Оценка").
Сохранение происходит при обновлении подкаста. Файл с оценками находится: C:\ProgramData\Home Media Server\hms_stars.backup
По умолчанию: on

Приятного просмотра!!!
[+] Что нового...
v3.0.7beta
  • Подкаст переведен на новое Youtube API 3.0
  • Удален параметр --max-results (остался параметр --maxresults)
  • Добавлен параметр --dopvideomaxresults (максимальное кол-во роликов в доп.видео)
  • Параметр orderby=published заменен на orderby=date
v3.0.9beta
  • Ускорение загрузки
  • Добавлена "Следующая страница" (теперь можно просматривать более 50 роликов)
  • Добавлена сквозная нумерация по страницам ({num} в шаблоне)
  • Доп.материалы динамически подгружаются при заходе в папку с доп.материалами.
  • Убраны шаблонные переменные {parentnum} и {parenttitle}
v3.0.13beta
  • Исправлена перемотка видео.
  • Получение длины ролика перед проигрыванием видео (для возможности перемотки)
  • Добавлен параметр --maxheight (максимальная высота видео)
  • Изменен алгоритм получения ссылки на видео, теперь проигрывается защищенное видео.
v3.0.15beta
  • Добавлены параметры получения информации перед просмотром видео
    --getfilesize=off (Получение размера видеофайла)
    --gettimelength=on (Получение длины ролика)
  • В поле Продюсер записывается название канала, в поле ProgramID Кол-во просмотров на Youtube
v3.0.17beta
  • Сохранение оценок видео (5-звездочный рейтинг, который проставляется пользователем в программе HMS в поле "Оценка")
    Теперь можно оценивать видео и, после удаления и восстановления подкаста, оценки видео восстановятся.
  • Добавлен параметр --backupstars=on который включает/отключает сохранение оценок видео
v3.0.19beta
  • Теперь можно получать список плейлистов, если в поле комментарий написать playlists а в ссылке ссылку на канал или поисковую строку
  • Можно получать список каналов, указав в комментарии channels, а в ссылке поисковую строку
  • Добавлены параметры --playlistpattern и --channelpattern в которых указывается шаблон формирования наименований
  • Добавлены шаблонные параметры {num0} - сквозной номер с ведущим нулем, {num} теперь не содержит нулей впереди, {position}, {position0} - номер позиции в пределах одной страницы
v3.0.27beta
  • playlists и channels теперь указываются в конце Ссылки через / (слеш) (Ранее указывались в Комментариях). Пример cсылки: user/simonscat/playlists (будут найдены все плейлисты пользователя simonscat)
  • Убран параметр search/<Поиск> из Ссылки, поиск теперь указывается в Комментарии
  • Параметр channelid теперь не существует, вместо него можно использовать channel. А вместо старого channel - user. Пример ссылки: channel/UCY9Nban7R4xGwR3sPJzfIqA или user/FiveTop5
  • Добавлен шаблонный параметр {channel} с именем канала
  • Добавлен шаблонный параметр {pubyear2} с годом из 2х цифр
v3.0.28beta
  • В свойствах подкаста можно выбрать сортировку, по которому будут сортироваться видео в пределах одной страницы (Сортировка медиа-ресурсов). Все внутренние папки будут сортироваться по этому критерию
  • В поле "Названии эпизода" загружается оригинальное название ролика. В поле "№ эпизода" сквозной номер записи
  • Если в "Ссылке" ничего не введено, будет произведен поиск по всем видео учитывая поисковый запрос записанный в "Комментарии".
Подробная инструкция по установке и настройке

Альтернативные варианты: Youtube v3 by WendyH
Attachments
YoutubeChannels_v3.0.28.beta.zip
YoutubeChannels_v3.0.28beta
(25.52 KiB) Downloaded 1957 times
WendyH
Posts: 393
Joined: Fri Apr 13, 2012 7:59 pm

Re: YoutubeChannels 1.1

Post by WendyH »

Просьба прикрепить подкаст к первому сообщению.
Раз дали ссылку на мой подкаст - там я обновил, чтобы он хоть работал что-ли. А то vimeo там не срабатывал.

Хороший у вас подкаст. Мне понравился. Теперь хоть ссылки на плейлист вставлять можно.
SONY KDL-32CX520
Vadim_S
Posts: 7
Joined: Sun Aug 03, 2014 9:36 pm

Re: YoutubeChannels 1.1

Post by Vadim_S »

Спасибо за отзыв!
Подкаст прикрепил.
alexmog
Posts: 9
Joined: Mon Feb 27, 2012 9:02 am

Re: YoutubeChannels 1.1

Post by alexmog »

Можно что-то сделать? Youtube не работает - папки пусты
Vadim_S
Posts: 7
Joined: Sun Aug 03, 2014 9:36 pm

Re: YoutubeChannels v3.0.7beta

Post by Vadim_S »

Обновлен подкаст YoutubeChannels_v3 (Бывший YoutubeChannels 1.1) до версии 3.0.7beta.
Добавлены некоторые параметры. Параметр --max-results переименован в --maxresults. Параметр orderby=published заменен на orderby=date
WendyH
Posts: 393
Joined: Fri Apr 13, 2012 7:59 pm

Re: YoutubeChannels v3.0.7beta

Post by WendyH »

У вас с таким скриптом получения ссылки на медиа-ресурс не будут проигрываться видео, которые с электронной подписью - signature. Это видео, которые защищены какой-нибудь лицензией, часто некоторые музыкальные клипы.

Например, если добавить канал http://www.youtube.com/user/FlyingLotusVEVO , клипы не будут проигрываться.

Это всё потому, что в скрипте (по Alt-4) в функции YoutubeDecrypt теперь должен быть немного другой алгоритм. Этот алгоритм они стали, во-первых, часто менять, во-вторых, он может зависеть от страны с которой загружается страница видео.
Например.
Если загрузить видео по ссылке http://www.youtube.com/watch?v=Fbi6pvFhXcE и посмотреть HTML код страницы, то там можно найти ссылку на JS скрипт, где будет алгоритм формирования подписи.

Code: Select all

 <script src="//s.ytimg.com/yts/jsbin/html5player-new-ru_RU-vfl1kbi44/html5player-new.js"
А в том скрипте, обычно это нужный код находится, где встречается:

Code: Select all

a=a.split("");
а далее идёт команды метаморфоз этой signature. Допустим, видим:

Code: Select all

$r.ft(a,20);$r.yF(a,1);$r.ft(a,72);$r.QG(a,8);$r.ft(a,47);$r.QG(a,5);$r.yF(a,2);$r.QG(a,30);$r.QG(a,66);return a.join("")};
Значит нужно найти, где определяется объект с именем "$r" и там найти эти фнукции "ft", "QG", "yF". Обычно это комбинация функций реверса строки, копирования или перестановки символов.
Но имена объекта и функций, а также значения передаваемых значений в эти функции от версии к версии этого JavaScript меняются.
Поэтому я решил написать PHP скрипт, который может искать эти алгоритмы и запоминать для версий Html5 плеера (в названии пути скрипта).
Я вижу вы там тоже типа своего API сделали и есть свой сервак. Можете поглядеть мой скрипт тут. И там функции "GetAlgorithm" и "YoutubeDecrypt". Можете разобраться и сделать свой.

Или вообще, можно использовать вызов этого скрипта. Вот процедура получения ссылки на C++Script, можно переделать под PascalScript:
[+] Функция получения ссылки Youtube

Code: Select all

// ------------------------------------------- Получение ссылки на Youtube ----
bool GetLink_Youtube3(string sLink) {
  string 
    sData, sVideoID='', sMaxHeight='', sAudio='', 
    sSubtitlesLanguage='ru', sSubtitlesUrl, sFile, sVal, sMsg; 
  TJsonObject JSON; 

  HmsRegExMatch('--maxheight=(\\d+)'    , mpPodcastParameters, sMaxHeight);
  HmsRegExMatch('--sublanguage=(\\w{2})', mpPodcastParameters, sSubtitlesLanguage);
  bool bSubtitles = (Pos('--subtitles'  , mpPodcastParameters)>0);  
  bool bAdaptive  = (Pos('--adaptive'   , mpPodcastParameters)>0);  
  bool bNotDE     = (Pos('notde=1'      , sLink)>0);  

  if (!HmsRegExMatch('[\\?&]v=([^&]+)'       , sLink, sVideoID))
       HmsRegExMatch('/(?:embed|v)/([^\\?]+)', sLink, sVideoID);

  if (sVideoID=='') { HmsLogMessage(2, 'Невозможно получить Video ID в ссылке Youtube'); return false; }

  sLink = 'http://hms.lostcut.net/youtube/g.php?v='+sVideoID;
  if (sMaxHeight!=''                  ) sLink += '&max_height='+sMaxHeight;
  if (Trim(mpPodcastMediaFormats )!='') sLink += '&media_formats='+mpPodcastMediaFormats;
  if (bAdaptive                       ) sLink += '&adaptive=1';
  if (bNotDE                          ) sLink += '&notde=1';
    
  sData = HmsUtf8Decode(HmsDownloadUrl(sLink));
  // if error - exists reason
  if (HmsRegExMatch('"reason":"(.*?)"' , sData, sMsg)) { HmsLogMessage(2, sMsg); return false; }

  JSON  = TJsonObject.Create(); 
  try {
    JSON.LoadFromString(sData);
    MediaResourceLink = JSON.S['url'   ];
    sSubtitlesUrl     = JSON.S['ttsUrl'];
    sAudio            = JSON.S['audio' ];
    if (sAudio!='') MediaResourceLink = Format('-i "%s" -i "%s"', [MediaResourceLink, sAudio]); 
  } finally { JSON.Free(); }
  
  if (Pos('m3u8', MediaResourceLink)>0) MediaResourceLink = ' '+Trim(MediaResourceLink);

  // Если есть субтитры и в дополнительных параметрах указано их показывать - загружаем 
  if (bSubtitles && (sSubtitlesUrl!='')) {
    sFile = HmsSubtitlesDirectory+'\\Youtube\\'+PodcastItem.ItemID+'.'+sSubtitlesLanguage+'.srt';
    sLink = sSubtitlesUrl+'&format=srt&lang='; 
    if (!HmsDownloadURLToFile(sLink+sSubtitlesLanguage, sFile, 'Accept-Encoding: gzip, deflate')) {
      HmsDownloadURLToFile(sLink+'en'                 , sFile, 'Accept-Encoding: gzip, deflate');
    }
    PodcastItem[mpiSubtitleLanguage] = sFile;
  }
  return true;
}
Или самый тупой вызов без учета настроек приоритета выбора качества и проч:

Code: Select all

MediaResourceLink = HmsDownloadUrl(http://hms.lostcut.net/youtube/g.php?link_only=1&v='+sVideoID);
Вот. Пока вам писал, нашёл один косяк и поправил в своём скрипте.
SONY KDL-32CX520
Vadim_S
Posts: 7
Joined: Sun Aug 03, 2014 9:36 pm

Re: YoutubeChannels v3.0.7beta

Post by Vadim_S »

WendyH, большое спасибо за советы :) Как разберусь обязательно поменяю.
Vadim_S
Posts: 7
Joined: Sun Aug 03, 2014 9:36 pm

Re: YoutubeChannels v3.0.11beta

Post by Vadim_S »

Выложена новая версия YoutubeChannels.
1. Появилась закладка "Следующая страница"
2. Теперь работает быстрее, за счет того, что при открытии "Доп.видео" и "Следующей страницы" видео подгружаются динамически.
3. Благодаря советам WendyH теперь воспроизводятся некоторые защищенные видео, которые ранее не проигрывались
4. Исправлены ошибки.
YoutubeChannels_v3.0.11.beta.hdf
Vadim_S
Posts: 7
Joined: Sun Aug 03, 2014 9:36 pm

Re: YoutubeChannels v3.0.15beta

Post by Vadim_S »

Новая версия YoutubeChannels 3.0.15 beta
1. Теперь работает перемотка.
2. Добавлены параметры
--maxheight - Максимальное разрешение видео по высоте
--getfilesize - Получение размера видеофайла перед просмотром видео (отключено для ускорение загрузки)
--gettimelength - Получение времени видеоролика перед просмотром видео (включено для возможности перемотки роликов)
3. Параметр --replacefrom , который заменяет текст в названии ролика, теперь регистронезависимый.
4. Мелкие исправления.

YoutubeChannels_v3.0.15.beta.hdf

P.S. Если у Вас перемотка не работает, попробуйте в Настройке/Устройства выбрать другой тип телевизора. Или в настройках типа телевизора в разделе Транскодер/Кодеки/Формат файла выбрать MPEG (DVD)

Замечания, вопросы можете писать сюда
Vadim_S
Posts: 7
Joined: Sun Aug 03, 2014 9:36 pm

Re: YoutubeChannels v3.0.19beta

Post by Vadim_S »

Новая версия YoutubeChannel v3.0.19beta
Основные нововведения:
1. Сохранение оценок пользователя (5-звездочный рейтинг).
2. Добавление плейлистов из указанного канала
3. Добавление плейлистов по поисковой строке
4. Добавление каналов по поисковой строке

Список остальных изменений написан в шапке под спойлером "+Что нового..."
Post Reply