Коллекция подкастов

Интернет-телевидение, интернет-радио, подкасты, IPTV
tarzann5
Posts: 90
Joined: Wed Feb 29, 2012 4:41 pm

Re: Коллекция подкастов

Post by tarzann5 »

http://online.stepashka.com - закодировался.
linkey
Posts: 110
Joined: Mon Oct 10, 2011 5:45 pm

Re: Коллекция подкастов

Post by linkey »

clipiki.ru Не знаю доступен ли он в других регионах поэтому отдельную тему создавать не буду. Сделал только поиск (правой кнопкой создать ленты подкастов)
Attachments
clipiki.rar
(3.55 KiB) Downloaded 2052 times
samsung UE32D5000
WendyH
Posts: 393
Joined: Fri Apr 13, 2012 7:59 pm

Re: Коллекция подкастов

Post by WendyH »

tarzann5 wrote:http://online.stepashka.com - закодировался.
Решил написать заметку по расшифровке в помощь интересующимся. http://www.homemediaserver.ru/forum/vie ... 703#p14703
linkey wrote:clipiki.ru Не знаю доступен ли он в других регионах поэтому отдельную тему создавать не буду. Сделал только поиск (правой кнопкой создать ленты подкастов)
Да ниче, работает вполне нормально.
SONY KDL-32CX520
alx77
Posts: 1
Joined: Sun Nov 11, 2012 4:19 am

Re: Коллекция подкастов

Post by alx77 »

подправил kino-dom.tv (раньше в именах серий были крокозяблы)
Attachments
KINO-DOM.TV.hdf.7z
(5.16 KiB) Downloaded 3972 times
tarzann5
Posts: 90
Joined: Wed Feb 29, 2012 4:41 pm

Re: Коллекция подкастов

Post by tarzann5 »

Valera wrote: А можно сделать что-бы видео открывалось в 720 а не в 360 качестве?
Можно если нужно. Нажимаешь на "hdkinomir.com", заходишь в "Изменить название/настройки" потом "Скрипт получения ссылки на ресурс" там в конце найдешь .../video/'+vtag+'.360.mp4', меняешь на .../videos/'+vtag+'.720.mp4'. Качество бывает 240, 360, 480,720. Если скорость интернета позволяет и есть вариант фильма такого качества то все заработает.
Attachments
hdkinomir.com.rar
отредактировал в ссылке вместо video на videos.
(5.1 KiB) Downloaded 3170 times
WendyH
Posts: 393
Joined: Fri Apr 13, 2012 7:59 pm

Re: Коллекция подкастов

Post by WendyH »

Интересный эффект. Ссылка у этого видео при обновлении подкаста когда "режим чтения списка ресурсов" стоит в положении "Стандартный (RSS)" получается вот такая
rtsp://v1.cache4.c.youtube.com/CiILENy73wIaGQkQprIllPo9eBMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp

Проверил (если ссылку канала вставить браузер хотябы), то в xml ссылка выглядит обычной:
"http://www.youtube.com/watch?v=eD36lCWy ... tube_gdata"
SONY KDL-32CX520
WendyH
Posts: 393
Joined: Fri Apr 13, 2012 7:59 pm

Re: Коллекция подкастов

Post by WendyH »

bartwell wrote:Получается, что проблема именно в формировании ссылки - два раза указывается схема в URL (http://rtsp://).
Не совсем. То, что эта ссылка не играется моим скриптом, говорит о том что функцию получения ссылки нужно переделывать, точнее дописывать. Ибо у Евгения эта ситуация отрабатывается, например.
Но и не расчитывал мой скрипт на входе обрабатывать прямую ссылку на медиафайл, он сам (скрипт) как раз и нужен для того чтобы из пути на страничку с видео получить ссылку на медиафайл. А тут скирпту сразу на вход ссылку дайют, которую по сути обрабатывать вообще не надо.
Обнови подкаст с этим каналом. На компьютере зайди в "Редактирование информации" созданной ссылки "Научные нубы - "шерстяные пузыри"" и посмотри на путь (ссылку). Потом открой "Редактирование инфрмации" ссылки "Научные нубы - "балансируем"". Сравни. Сравни эту ссылку со всеми ссылками остальными этого канала. При этом скрипт получения ссылки не работал ещё.
SONY KDL-32CX520
WendyH
Posts: 393
Joined: Fri Apr 13, 2012 7:59 pm

Re: Коллекция подкастов

Post by WendyH »

Используй скрипт Евгения и всё. Но уж если очень хочется именно тот мой. То вот тут вставил строчку для подобных казусов. А вообще, часто такое происходит?

Code: Select all

bool gbQualityLog = true;

// ---------------------------------------------------------------------------------------
// Получение ссылки на Youtube
bool GetLink_YouTube(char sLink) {
  char sHtml, sFormatMap='', sVideoID='', sFormat, itag, sig, sQAval, sQSel;
  int i, iHeight, iPriority, iMinPriority=99;

  if (HmsRegExMatch('(\\w{4,5}://.*/video.3gp)', sLink, MediaResourceLink)) return true;
  if (LeftCopy(sLink, 4)!='http') sLink = 'http://' + Trim(sLink);
  if (Pos('%3F', sLink)>0) sLink=HmsHttpDecode(sLink);  // Если нужно - декодим
  if (!HmsRegExMatch('[\\?&]v=([^&"\\?]*)',       sLink, sVideoID))
  if (!HmsRegExMatch('youtube.com/v/([^&"\\?]*)', sLink, sVideoID))
  if (!HmsRegExMatch('youtu.be/([^&"\\?]*)',      sLink, sVideoID))
       HmsRegExMatch('/embed/([^&"\\?]*)',        sLink, sVideoID); // Внимательно - ИФы выполняются, если предыдующий нет!
  if (sVideoID=='') {sHtml = HmsDownloadURL(sLink); HmsRegExMatch('/watch[^&"\']v=([^&"]*)', sHtml, sVideoID);}
  if (sVideoID=='') {HmsLogMessage(2, mpTitle+' Немогу найти VideoID в ссылке на youtube.com ('+sLink+')'); return true;}

  char aGUrl[2]; // Несколько способов искать stream_map
  aGUrl[0] = 'http://www.youtube.com/get_video_info?video_id=';
  aGUrl[1] = 'http://www.youtube.com/watch?has_verified=1&v=';
  // aGUrl[2] = 'http://www.youtube.com/api_video_info?video_id=';
  sHtml = HmsDownloadURL(aGUrl[1]+sVideoID);
  if (!HmsRegExMatch('fmt_stream_map=(.*?)&', sHtml, sFormatMap))
  if (!HmsRegExMatch('fmt_stream_map"\\s*?:\\s*?"(.*?)"', sHtml, sFormatMap))
  if (!HmsRegExMatch('fmt_url_map=(.*?)&', sHtml, sFormatMap)) {
    // Попытка сделать это немного по-другому
    sHtml = HmsDownloadURL(aGUrl[0]+sVideoID);
    if (!HmsRegExMatch('fmt_stream_map=(.*?)&', sHtml, sFormatMap))
    if (!HmsRegExMatch('fmt_stream_map"\\s*?:\\s*?"(.*?)"', sHtml, sFormatMap))
         HmsRegExMatch('fmt_url_map=(.*?)&', sHtml, sFormatMap);
  }
  if (sFormatMap!='') {
    sFormatMap = HmsHttpDecode(sFormatMap);
    sQAval = '';
    for (i=1; i<=WordCount(sFormatMap, ','); i++) {
      sFormat = ExtractWord(i, sFormatMap, ',');
      HmsRegExMatch('itag=(\\d+)', sFormat, itag );
      HmsRegExMatch('url=(.*?)&',  sFormat, sLink);
      sLink = HmsHttpDecode(sLink);
      if (HmsRegExMatch('sig=(.*?)&', sFormat, sig)) sLink+= '&signature=' + sig;
      if (mpPodcastMediaFormats=='') {MediaResourceLink = sLink; break;}
      iHeight=0;
      if      (IsWordPresent(itag, '13,17',           ',')) iHeight=144;
      else if (IsWordPresent(itag, '5,83',            ',')) iHeight=240;
      else if (IsWordPresent(itag, '6',               ',')) iHeight=270;
      else if (IsWordPresent(itag, '18,34,43,82,100', ',')) iHeight=360;
      else if (IsWordPresent(itag, '35,44,101',       ',')) iHeight=480;
      else if (IsWordPresent(itag, '22,45,84,102',    ',')) iHeight=720;
      else if (IsWordPresent(itag, '37,46',           ',')) iHeight=1080;
      else if (IsWordPresent(itag, '38',              ',')) iHeight=3072;
      iPriority = HmsMediaFormatPriority(iHeight, mpPodcastMediaFormats);
      if ((iPriority>=0)&&(iPriority<iMinPriority)) {iMinPriority=iPriority; MediaResourceLink=sLink;sQSel=IntToStr(iHeight);}
      sQAval += IntToStr(iHeight)+'  ';
    }
    if ((mpPodcastMediaFormats!='') && gbQualityLog) {
      if (sQAval=='') HmsLogMessage(2, Format('%s: Нет выбора доступного качества у этого видео', [mpTitle]));
      else HmsLogMessage(2, Format('%s: Доступно качество: %s Выбрано: %s', [mpTitle ,sQAval, sQSel]));
    }
    // Заполняем для кучи, если не заполнено, информацию элемента подкаста
//    CheckYoutubeVideoInfo(sHtml);
  } else {
    // Если нет stream_map, пробуем тупо взять ссылку по API
    sHtml = HmsDownloadURL('http://gdata.youtube.com/feeds/api/videos/'+sVideoID+'?v=2');
    HmsRegExMatch('<media:content[^>]+url=\'([^>]+)\'[^>]+type=\'video[^>]+yt:format=\'6', sHtml, MediaResourceLink);
  }
  if (MediaResourceLink=='') {HmsLogMessage(2, mpTitle+': Видео на youtube.com недоступно ('+sLink+')');}
  return true;
}
А, там вначале скрипта необходимо ещё строчку вставить:
bool gbQualityLog = true;
Это при включенном приоритете форамтов видео чтобы показывал выбранное качетсво из списка возможных. (Или false присвоить чтобы не показывал.)
SONY KDL-32CX520
WendyH
Posts: 393
Joined: Fri Apr 13, 2012 7:59 pm

Re: Коллекция подкастов

Post by WendyH »

...Но появилась та же самая проблема...
Это и понятно. На самом деле то проблема в другом. Незнаю, могу предложить вот, в папку Favorites (или где вы подобные ссылки на каналы держите) в настройках "Режим чтения списка ресурсов" включить "Специальный (скрипт)", а "Скрипт чтения списка ресурсов" поставить "Включён" и вставить туда следующий код (Pascal script):

Code: Select all

var
  gnItemsAdded: Integer;
  sXml, sItemBlock, sTitle, sLink, sTime, sDescr, sAuth, sImg, sGenre, sYear: string;
  Item: THmsScriptMediaItem; reSearch: TRegExpr;
// ----------------------------------------------------------------------------
// Main program
begin

  gnItemsAdded := 0;
  FolderItem.DeleteChildItems();                    // Удаляем старый список ссылок
  sXml := HmsUtf8Decode(HmsDownloadURL(mpFilePath)); // Загружаем данные по ссылке

  // Создаём объект класса TRegExpr, который будет искать по регулярному выражению
  // Ищем блоки текста между тегами <item> и </item>
  reSearch := TRegExpr.Create('<item>(.*?)</item>', PCRE_SINGLELINE);
  if reSearch.Search(sXml) then repeat begin
    sItemBlock := reSearch.Match(); // Найденный блок

    // Поиск информации о видео
    HmsRegExMatch('<link>(.*?)&',                     sItemBlock, sLink ); // Ссылка
    HmsRegExMatch('<title>(.*?)</title>',             sItemBlock, sTitle); // Название
    HmsRegExMatch("thumbnail url='(.*?)'",            sItemBlock, sImg  ); // Картинка
    HmsRegExMatch('<description>(.*?)</description>', sItemBlock, sDescr); // Комментарий
    HmsRegExMatch("category label='(.*?)'",           sItemBlock, sGenre); // Категория / Жанр
    HmsRegExMatch("duration='(\d+)",                  sItemBlock, sTime ); // Длительность
    HmsRegExMatch('<author>(.*?)</author>',           sItemBlock, sAuth ); // Автор
    HmsRegExMatch('<pubDate>.*?(\d{4})',              sItemBlock, sYear ); // Год

    sTime := HmsTimeFormat(StrToIntDef(sTime, 6000))+'.000'; // Длительность приводим к формату HMS
    sGenre:= HmsHtmlToText(sGenre);
    // Создаём элемент подкаста - ссылку и устанавливаем ему значения
    Item := HmsCreateMediaItem(sLink, FolderItem.ItemID);
    Item[mpiTitle]      := sTitle;    // Название
    Item[mpiThumbnail]  := sImg;      // Картинка
    Item[mpiComment]    := sDescr;    // Комментарий
    Item[mpiYear]       := sYear;     // Год
    Item[mpiTimeLength] := sTime;     // Длительность
    Item[mpiGenre]      := sGenre;    // Жанр
    Item[mpiCreateDate] := DateTimeToStr(IncTime(Now, 0, -gnItemsAdded, 0, 0)); // (Для обратной сортировки)
    gnItemsAdded := gnItemsAdded + 1;

  end until not reSearch.SearchAgain(); // Повторяем поиск пока он удачен (SearchAgain() возвращает true)

end.
Он очень прост. И это удобный случай начать учится программировать. ) Работать с RSS не так трудно.
SONY KDL-32CX520
VVS1234
Posts: 44
Joined: Sat Oct 13, 2012 10:41 pm

Re: Коллекция подкастов

Post by VVS1234 »

arshavir wrote:Перестало работать FILMIX.NET
Выкладываю раскодированный filmix.ru. У меня работает. На плеерах (телевизорах) без поддержки flv, напр. Дюна, смотреть только через транскодирование.

Перенесено в свою тему
http://www.homemediaserver.ru/forum/vie ... =20&t=2581

-----
"Версия" 0.1: исправил скрипт получения ссылки -- теперь нет ошибки, если ссылка на файл единственна (а не 1 or 2 , как обычно).

Добавление 29-12-12: версия _by_level разбивает процесс на 2 этапа:
1 -- создать ленты подкастов (папка "фильмы" (или "сериалы") - правой мышью - "Создать ленты подкастов"
2 -- обновить подкасты

При этом каждая категория фильмов и каждый отдельный сериал создается отдельным подкастом, так что может быть обновлен индивидуально.
Иначе (в базовой версии) обновление должно быть сделано скопом и занимает уж оооочень долго -- а смотрим обычно далеко не все.
Теперь можно выбрать, что обновлять. И, конечно, добавить новый сериал ручками как подкаст -- без необходимости обновлять все. Однако я оставлю и базовую версию, если кому-то проще так.
Attachments
filmix_0.1.zip
(3.75 KiB) Downloaded 2869 times
Post Reply