<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Неофициальный форум DLNA Home Media Server &mdash; Создание m3u-плейлиста из подкаста]]></title>
	<link rel="self" href="https://hms.lostcut.net/extern.php?action=feed&amp;tid=796&amp;type=atom" />
	<updated>2025-01-19T10:53:40Z</updated>
	<generator>PunBB</generator>
	<id>https://hms.lostcut.net/viewtopic.php?id=796</id>
		<entry>
			<title type="html"><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=18470#p18470" />
			<content type="html"><![CDATA[<p>У меня тоже появился вопрос по этой обработке.</p><p>Можно ли изменить обработку так,<br />чтобы при вызове шел запрос либо на имя подкаста,<br />либо на путь подкаста,<br />иначе при наличии нескольких подкастов нужно иметь такое же количество обработок,<br />что явно нелогично ...</p><p>Еще лучше сделать так, что<br />обработка должна быть одна, и она может сама определять имя подкаста, <br />из которого обработку запустили,<br />для создания плейлиста ...</p>]]></content>
			<author>
				<name><![CDATA[lidars]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=172</uri>
			</author>
			<updated>2025-01-19T10:53:40Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=18470#p18470</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=17825#p17825" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[radik_sabirov]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=615</uri>
			</author>
			<updated>2021-03-27T10:21:41Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=17825#p17825</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=16986#p16986" />
			<content type="html"><![CDATA[<p>Для смены кодировки сохраняемого плейлиста на UTF-8 (в исходном варианте сохраняет в Windows-1251) достаточно будет добавить команду &quot;gsContent = HmsUtf8Encode(gsContent);&quot; ?</p>]]></content>
			<author>
				<name><![CDATA[radik_sabirov]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=615</uri>
			</author>
			<updated>2020-06-16T15:34:18Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=16986#p16986</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=16932#p16932" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>smsbox3 пишет:</cite><blockquote><p>что мешает этой обработке отдавать плейлист сразу на устройство?</p></blockquote></div><p>Да ничего, если подобный скрипт засунуть в срабатывание отдачи плейлиста, какой-нибудь ссылки.<br />Только он заставит срабатывать каждый раз при запросе, а он отрабатывает далеко не моментально, .т.к. делает запросы для получения ссылки для <strong>каждого</strong> канала (в случае с movix).<br />А так, да, можно придумать применение ещё для чего-нибудь подобного скрипта. Я с плейлистами не очень, они мне незачем, по просьбе сделал.</p>]]></content>
			<author>
				<name><![CDATA[WendyH]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=2</uri>
			</author>
			<updated>2020-06-08T19:39:17Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=16932#p16932</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Создание m3u-плейлиста из подкаста]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=16931#p16931" />
			<content type="html"><![CDATA[<p>Я может не понимаю чего-то, но что мешает этой обработке отдавать плейлист сразу на устройство? По такому принципу работают самообновляемые плей листы. Мы на сервер ставим, что файлы с расширением m3u есть рабочие файлы php и при вызове например 1.m3u отрабатывается скрипт и выдает результат на плеер плейлист, так как будто этот 1.m3u обычный файл, а не результат работы скрипта.&nbsp; Плейлист вообще можно не хранить.</p>]]></content>
			<author>
				<name><![CDATA[smsbox3]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=1305</uri>
			</author>
			<updated>2020-06-08T19:21:18Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=16931#p16931</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Создание m3u-плейлиста из подкаста]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=16929#p16929" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[WendyH]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=2</uri>
			</author>
			<updated>2020-06-08T16:49:39Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=16929#p16929</id>
		</entry>
</feed>
