<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Неофициальный форум DLNA Home Media Server &mdash; Создание m3u-плейлиста из подкаста]]></title>
		<link>https://hms.lostcut.net/viewtopic.php?id=796</link>
		<atom:link href="https://hms.lostcut.net/extern.php?action=feed&amp;tid=796&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Создание m3u-плейлиста из подкаста».]]></description>
		<lastBuildDate>Sun, 19 Jan 2025 10:53:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=18470#p18470</link>
			<description><![CDATA[<p>У меня тоже появился вопрос по этой обработке.</p><p>Можно ли изменить обработку так,<br />чтобы при вызове шел запрос либо на имя подкаста,<br />либо на путь подкаста,<br />иначе при наличии нескольких подкастов нужно иметь такое же количество обработок,<br />что явно нелогично ...</p><p>Еще лучше сделать так, что<br />обработка должна быть одна, и она может сама определять имя подкаста, <br />из которого обработку запустили,<br />для создания плейлиста ...</p>]]></description>
			<author><![CDATA[null@example.com (lidars)]]></author>
			<pubDate>Sun, 19 Jan 2025 10:53:40 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=18470#p18470</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=17825#p17825</link>
			<description><![CDATA[<p>Добрый день! В последнее время &quot;обработка&quot; работает с ошибками. Созданный файл содержит одну - две корректные ссылки. Далее следуют строки, содержащие только название каналов, а строки с ссылками отсутствуют. При этом во время работы &quot;обработки&quot; в журнале сервера выводятся&nbsp; строки со следующим содержанием:<br /></p><div class="quotebox"><blockquote><p>[Info] 2: Не удалось выполнить действие. Пожалуйста, попробуйте позднее. При повторном возникновении проблемы обратитесь по номеру бесплатной технической поддержки 8 800 333 70 00.</p></blockquote></div><p>Также было замечено, что если перед запуском &quot;обработки&quot; произвести обновление подкаста &quot;Дом.ру&quot;, то &quot;обработка&quot; срабатывает без ошибок.<br />Скажите, можно ли добавить в код &quot;обработки&quot; вызов обновления подкаста? Если можно - подскажите как это сделать?<br />Либо может есть другие способы устранения ошибки?</p>]]></description>
			<author><![CDATA[null@example.com (radik_sabirov)]]></author>
			<pubDate>Sat, 27 Mar 2021 10:21:41 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=17825#p17825</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=16986#p16986</link>
			<description><![CDATA[<p>Для смены кодировки сохраняемого плейлиста на UTF-8 (в исходном варианте сохраняет в Windows-1251) достаточно будет добавить команду &quot;gsContent = HmsUtf8Encode(gsContent);&quot; ?</p>]]></description>
			<author><![CDATA[null@example.com (radik_sabirov)]]></author>
			<pubDate>Tue, 16 Jun 2020 15:34:18 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=16986#p16986</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=16932#p16932</link>
			<description><![CDATA[<div class="quotebox"><cite>smsbox3 пишет:</cite><blockquote><p>что мешает этой обработке отдавать плейлист сразу на устройство?</p></blockquote></div><p>Да ничего, если подобный скрипт засунуть в срабатывание отдачи плейлиста, какой-нибудь ссылки.<br />Только он заставит срабатывать каждый раз при запросе, а он отрабатывает далеко не моментально, .т.к. делает запросы для получения ссылки для <strong>каждого</strong> канала (в случае с movix).<br />А так, да, можно придумать применение ещё для чего-нибудь подобного скрипта. Я с плейлистами не очень, они мне незачем, по просьбе сделал.</p>]]></description>
			<author><![CDATA[null@example.com (WendyH)]]></author>
			<pubDate>Mon, 08 Jun 2020 19:39:17 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=16932#p16932</guid>
		</item>
		<item>
			<title><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=16931#p16931</link>
			<description><![CDATA[<p>Я может не понимаю чего-то, но что мешает этой обработке отдавать плейлист сразу на устройство? По такому принципу работают самообновляемые плей листы. Мы на сервер ставим, что файлы с расширением m3u есть рабочие файлы php и при вызове например 1.m3u отрабатывается скрипт и выдает результат на плеер плейлист, так как будто этот 1.m3u обычный файл, а не результат работы скрипта.&nbsp; Плейлист вообще можно не хранить.</p>]]></description>
			<author><![CDATA[null@example.com (smsbox3)]]></author>
			<pubDate>Mon, 08 Jun 2020 19:21:18 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=16931#p16931</guid>
		</item>
		<item>
			<title><![CDATA[Создание m3u-плейлиста из подкаста]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=16929#p16929</link>
			<description><![CDATA[<p>Обработка, которую можно запускать по расписанию для создания плейлиста m3u (например, если в ссылках на вещание есть временные токены).&nbsp; <br />Файл плейлиста будет сохранён туда, где указано в данной обработке.<br />Чтобы изменить значения пути, куда сохранять, нужно открыть код обработки и поменять первые три верхних значения:<br /></p><div class="codebox"><pre><code>string gsPlaylistName = &quot;DomRu&quot;;            // Название плейлиста
string gsPlaylistFile = &quot;D:\\domru.m3u&quot;;    // Путь и имя файла m3u-плейлиста, который будет создан
string gsPodcastPath  = &quot;https://movix.ru&quot;; // Значение поля &quot;Ссылка&quot; подкаста, из которого будет создан плейлист</code></pre></div><p>Данная обработка сделана для подкаста <a href="https://hms.lostcut.net/viewtopic.php?pid=15656#p15656">movix.ru (ДомРу Телевидение)</a>, но может быть настроена для любого подобного подкаста.&nbsp; </p><div class="wh_markdown"><div class="markdown-body"><p>Что эта обработка делает?</p>
<ul>
<li>Находит подкаст, у которого значение "Ссылка" совпадает с указанной в обработке (в примере это <code>https://movix.ru</code>).  </li>
<li>Обходит все папки в подкасте и получает значение MediaResourceLink (реальное значение ссылки на поток, получаемый скриптом, а не значением ссылки) для каждого видео, имя папки используется как имя группы;</li>
<li>Добавляет все найденные ссылки в содержимое плейлиста;</li>
<li>Сохраняет содержимое плейлиста в файл, указанный в коде обработки (переменная gsPlaylistFile).</li>
</ul>
<p><div class="md_spoiler_switcher"><div class="md_spoiler_header"><strong>+</strong>&nbsp;<a href="#Код_обработки" name="Код_обработки" class="anchor" target="_blank"><span class="octicon octicon-link"></span></a>Код обработки</div><div name="Код_обработки" class="md_spoiler"></p>
<pre><code>string gsPlaylistName = "DomRu";            // Название плейлиста
string gsPlaylistFile = "D:\\domru.m3u";    // Путь и имя файла m3u-плейлиста, который будет создан
string gsPodcastPath  = "https://movix.ru"; // Значение поля "Ссылка" подкаста, по которому будет создан плейлист
string gsContent      = "";

///////////////////////////////////////////////////////////////////////////////
// Добавление ссылок из указанной папки в содержимое плейлиста
void AddLinksFromFolder(THmsScriptMediaItem Folder, string sGrp="") {
  for (int i=0; i &lt; Folder.ChildCount; i++) {
    THmsScriptMediaItem Item = Folder.ChildItems[i];
    if (Item.IsFolder) {
      AddLinksFromFolder(Item, Item[mpiTitle]);
    } else {
      gsContent += Format('#EXTINF:-1 logo=%s group-title="%s" ,%s\r\n', [Item[mpiThumbnail], sGrp, Item[mpiTitle]]);
      gsContent += Item[mpiMediaResourceSource]+'\r\n';
    }
  }
}

///////////////////////////////////////////////////////////////////////////////
//                     Г Л А В Н А Я   П Р О Ц Е Д У Р А                     //
{
  THmsScriptMediaItem Podcast = HmsFindMediaFolder(mfVideoPodcastsFolderItemID, gsPodcastPath);
  
  if (Podcast != nil) {
    HmsLogMessage(1, 'Начало обнолвения плейлиста '+gsPlaylistFile+' ...');
    gsContent = '#EXTM3U\r\n';
    gsContent += '#PLAYLIST: '+gsPlaylistName+' '+DateTimeToStr(Now)+'\r\n';
    AddLinksFromFolder(Podcast);
    HmsStringToFile(gsContent, gsPlaylistFile);
    HmsLogMessage(1, 'Плейлист '+gsPlaylistFile+' обновлён.');
    
  } else {
    HmsLogMessage(2, 'Подкаст со ссылкой "'+gsPodcastPath+'" не найден!');

  }
}
</code></pre>
<p></div></div></p>
</div></div><p><a href="https://hms.lostcut.net/viewtopic.php?id=27#%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83">Как добавить обработку в HMS</a></p><p>Расписание запуска обработки настраивается здесь:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><span class="postimg"><img src="https://hms.lostcut.net/misc.php?action=pun_attachment&amp;item=4331" alt="https://hms.lostcut.net/misc.php?action=pun_attachment&amp;amp;item=4331" /></span></p></div></div>]]></description>
			<author><![CDATA[null@example.com (WendyH)]]></author>
			<pubDate>Mon, 08 Jun 2020 16:49:39 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=16929#p16929</guid>
		</item>
	</channel>
</rss>
