PlayerJS плейлисты регулярными выражениями
Данный материал будет полезен тем, кто собирает и формирует в ручном режиме плейлисты с сериалами, фильмами, и любыми iframe ссылками.
Рутинная работа никому не интересна, а когда вам нужно вставит в плейлист много ссылок на сериал, мультсериал, мыльную оперу, терпению может прийти конец.
А получилось все просто, один из моих клиентов поинтересовался, можно ли как то автоматизировать эту рутину с плейлистами.
Несмотря на то, что у него на сайте установлен модуль который автоматически формирует плейлисты в формате PlayerJS из плейлистов Ютуба, ему нужны были ссылки из разных источников. Примером послужил сериал Улица 2019 в котором 160 серий.
Заказчик предоставил ссылки вот в таком виде:
<option value="https://rutube.ru/play/embed/10629771">01 серия</option><option value="https://rutube.ru/play/embed/10645692">02 серия</option><option value="https://rutube.ru/play/embed/10631598">03 серия</option><option value="https://rutube.ru/play/embed/10633451">04 серия</option><option value="https://rutube.ru/play/embed/10635596">05 серия</option><option value="https://rutube.ru/play/embed/10643476">06 серия</option><option value="https://rutube.ru/play/embed/10645849">07 серия</option><option value="https://rutube.ru/play/embed/10648529">08 серия</option><option value="https://rutube.ru/play/embed/10650079">09 серия</option><option value="https://rutube.ru/play/embed/10657431">10 серия</option><option value="https://rutube.ru/play/embed/10659650">11 серия</option><option value="https://rutube.ru/play/embed/10661439">12 серия</option><option value="https://rutube.ru/play/embed/10663744">13 серия</option><option value="https://rutube.ru/play/embed/10670724">14 серия</option><option value="https://rutube.ru/play/embed/10670773">15 серия</option><option value="https://rutube.ru/play/embed/10673355">16 серия</option>
А ему нужно было привести данную строку с кучей ссылок к формату который использует PlayerJS.
Особо не стал заморачиваться, а сделал это при помощи Microsoft Excel и регулярных выражений Notepad++.
Пошаговая инструкция по созданию плейлиста
1. Создем шаблон будущего плейлиста в Microsoft Excel, вот такого вида. Вы можете взять данный файл за основу.
Скачать шаблон плейлиста:
plejlist-shablon-1.zip [6.4 Kb] (cкачиваний: 48)
Думаю, что все умеют пользоваться Microsoft Excel и пояснять, как протянуть столбец вниз объяснять не нужно!
Формируем шаблон на нужно количество серий.
2. Регулярными выражениями Notepad++ приводим строку со ссылками к виду, когда все ссылки располагаются в столбик.
Начнем с переноса строк в файле регулярными выражениями.
Найти:
"
Заменить на:
\r\n
3. Теперь в полученном списке нам нужно удалить все лишнее, для того чтобы остались только ссылки. И снова нам на помощь придут регулярными выражениями Notepad++.
Копируем из списка который у нас получился строчку, которую нужно удалит. В моем примере одна выглядит так:
>01 серия</option><option value=
Две точки в поиске, это два любых символа. В нашем случае, это номера серий.
Найти:
>.. серия</option><option value=
Заменить на пусто.
Вот так это выглядит на картинке:
После данной операции и удаления первой и последней строки, мы получаем список ссылок. Примерно такого вида как на картинке ниже:
4. Удаляем лишние строки в списке со ссылками.
И удаление пустых строк оказалось тривиальной задаче в Notepad++.
Идем в меню:
Правка - Операции со Срокам - Удалит пустые строки.
Получили список со ссылками, который выглядит вот так:
5. Копируем содержимое списка и вставляем в шаблон Microsoft Excel.
Получаем вот такой плейлист.
6. Последним штрихом в создании нашего плейлиста, будет удаление лишних пробелов.
Копируем содержимое из Excel в Notepad++.
Вставил содержимое в файл Notepad++, явно видно пробелы которые надо удалить. Иначе, плейлист не будет работать в PlayerJS.
Удаление делаем в два этапа. Первый этап это удаление всех пробелов, а вторым этапом добавим пробелы там где они нужны.
Как по мне, это проще и быстрее.
Выделяем пробел который надо удалит:
Далее нажимаем Ctr + F, заменить на пусто.
И заключительный штрих в плейлисте, добавление пробела перед словом "серия".
Результат работы надо плейлистом
Такими не хитрыми манипуляциями, мы получим вот такой текстовый файл плейлиста.
[
{"title":"1 серия","file":"https://rutube.ru/play/embed/10629771"},
{"title":"2 серия","file":"https://rutube.ru/play/embed/10645692"},
{"title":"3 серия","file":"https://rutube.ru/play/embed/10631598"},
{"title":"4 серия","file":"https://rutube.ru/play/embed/10633451"},
{"title":"5 серия","file":"https://rutube.ru/play/embed/10635596"},
{"title":"6 серия","file":"https://rutube.ru/play/embed/10643476"},
{"title":"7 серия","file":"https://rutube.ru/play/embed/10645849"},
{"title":"8 серия","file":"https://rutube.ru/play/embed/10648529"},
{"title":"9 серия","file":"https://rutube.ru/play/embed/10650079"},
{"title":"10 серия","file":"https://rutube.ru/play/embed/10657431"},
{"title":"11 серия","file":"https://rutube.ru/play/embed/10659650"},
{"title":"12 серия","file":"https://rutube.ru/play/embed/10661439"},
{"title":"13 серия","file":"https://rutube.ru/play/embed/10663744"},
{"title":"14 серия","file":"https://rutube.ru/play/embed/10670724"},
{"title":"15 серия","file":"https://rutube.ru/play/embed/10670773"},
{"title":"16 серия","file":"https://rutube.ru/play/embed/10673355"}
]
Конечно же я сократил файл.
Как убрать каждую нечетную строку в Notepad ++?
Бывает так, что с донора можно взять не только номера серий, но и название серии.
И при помощи регулярных выражений Notepad ++ описанных выше, файл можно привести к виду как показано на рисунке ниже.
Легким движение рук, удаляются все нечетные строки в списке вот такими регулярными выражениями.
Вы можете сделать это с помощью поиска и замены:
- Откройте диалог замены ( Ctrl+ H)
- Выберите «Регулярное выражение»
- Найти то, что:
.+\r\n(.+(\r\n|$))
- Заменить:
$1
- Нажмите «Заменить все»
На выходе вы получите файл вот такого вида:
Если нужно содержание четных строк. Просто добавьте одну строку в верхней части файла и на выходе вы получите вот такой результат:
После всех этих манипуляций со ссылками, плейлист в формате PlayerJS можно использовать на вашем сайте.
Если у Вас есть более легкий способ выполнения данной задачи, напишите. Я возьму ваш вариант на заметку.