Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Общие » Флейм » Как автоматически создать плейлисты

Модерирует : 3xp0, TechSup

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Cobblepot



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть структура папок и подпапок с mp3 файлами. Как автоматически создать в каждой папке m3u8 плейлист содержимого?

Всего записей: 43 | Зарегистр. 08-03-2012 | Отправлено: 21:20 16-09-2014
Cobblepot



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сам спросил — сам отвечу.
Нужно выполнить вот этот скрипт (скопировать и сохранить как MakePlayLists.vbs):

Код:
 
' MakePlayLists.vbs
'========================   Описание   =====================================
' Создает M3U в текущей и в каждой в нее вложенной папке, если найдет в них файлы MP3 или WMA
'=======================   Параметры  =====================================
' 1-й параметр: папка\с\музыкальными\файлами
' 2-й параметр: любой, если он присутствует, то плейлисты будут созданы с полными путями
'========================   Примеры   =====================================
' "%p"     - создаются плейлисты с именами
' "%p" 1  - создаются плейлисты с полными путями
 
' Автор:             Volniy & Аверин Андрей
' Версия:          1.1 (2004 - 25.10.2011)
' Site:                  http://tc-image.3dn.ru
'=======================================================================
Option Explicit
Dim FSO, Cnt, CntF, NP
Set FSO = CreateObject("Scripting.FileSystemObject")
 
If FSO.FolderExists(WScript.Arguments(0)) = False Then
    MsgBox "Указана неверная директория!", vbCritical, "Ошибка"
Else
    Call ScanFolderForMP3(FSO.GetFolder(WScript.Arguments(0)))
    MsgBox Cnt & " плейлист(а,ов) с " & CntF &  " файлами создано.", vbInformation, "Завершено"
End If
 
Set FSO = Nothing : WScript.Quit
 
Sub ScanFolderForMP3(curFolder)
   Dim SF
   For Each SF In curFolder.SubFolders
     ScanFolderForMP3 SF
   Next
   Call MakeM3U(curFolder)
End Sub
 
Sub MakeM3U(curFolder)
   Dim F, List, m3uFile, fExt
   On Error Resume Next
   For Each F In curFolder.Files
     fExt = UCase(FSO.GetExtensionName(F.Name))
     If fExt = "MP3" Or fExt = "WMA" Or fExt = "M4A" Then
       If WScript.Arguments.Count > 1 Then
         NP = F.Path
       Else
         NP = F.Name
       End If
       List = List & NP & vbCrLf : CntF = CntF + 1
     End If
   Next
   If Len(List) Then
     Set F = curFolder.CreateTextFile(curFolder.Name & ".m3u8", True, True)
     
         F.Write List : F.Close: Cnt = Cnt + 1
   End If
End Sub
 

 
Затем мне пришлось переконвертировать файлы из UTF-16 в UTF-8 (iTunes не понимал UTF-16):
Нужно установить Iconv. Сохранить с расширением CMD, запускать из папки с музыкой.

Код:
 
for /R %%i in (*.m3u) do (
"c:\Program Files (x86)\GnuWin32\bin\iconv" -f utf-16 -t utf-8 "%%i" >"%%i".txt
)
 

Затем Тотал Коммандером (с помощью "показать все файлы без подкаталогов") удалить файлы .m3u8, а файлы .txt, в свою очередь, переименовать в .m3u8

Всего записей: 43 | Зарегистр. 08-03-2012 | Отправлено: 16:58 20-09-2014 | Исправлено: Cobblepot, 16:58 20-09-2014
tulipp

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Не знал, где задать свой вопрос, решил здесь, близкая тема.
Имеется корневая папка с несколькими под-папками, в которых находятся аудио-файлы flac и файлы cue.
Я создал общий плей-лист для всех под-папок (с помощью Pot-player). Все отлично, но только, если не меняется директория (т.е. плей-лист привязан к местоположению корневой папки. Вопрос: как "отвязать" плей лист от полного пути местоположения корневой папки, а чтобы он был связан только с ее названием (сам файл плей-листа находится в ней). Другими словами, чтобы при переносе (копировании) на другой носитель этой папки, плей-лист оставался рабочим.
Пример моего плей-листа для 2-х под-папок (полный не вместится, да и не нужен для примера)
m3u8:
#EXTM3U8
<0.32,460.60>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
<460.60,918.32>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
<918.32,1123.22>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
<1128.20,1375.7>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
<1375.7,2001.32>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
<2001.32,0.0>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
<0.0,143.43>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
<143.43,446.25>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
<446.25,755.50>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
<755.50,1169.53>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
<1169.53,1403.3>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
<1403.3,1611.73>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
<1611.73,2037.58>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
<2037.58,0.0>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
 
для .pls выглядит так:
[playlist]
NumberOfEntries=401
File1=<0.32,460.60>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
Title1=Jean-Michel Jarre - Oxygene (Part I)
Length1=460
File2=<460.60,918.32>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
Title2=Jean-Michel Jarre - Oxygene (Part II)
File3=<918.32,1123.22>F:\Musiс\Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac
Title3=Jean-Michel Jarre - Oxygene (Part III)
==============================
File8=<0.0,143.43>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
Title8=Jean-Michel Jarre - Equinoxe Part 1
File9=<143.43,446.25>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
Title9=Jean-Michel Jarre - Equinoxe Part 2
File10=<446.25,755.50>F:\Musiс\Jean Michel Jarre\Albums\1978 - Equinoxe (Released 1983)\Jean-Michel Jarre - Equinoxe.flac
Title10=Jean-Michel Jarre - Equinoxe Part 3
 
что в них изменить, чтобы исчезла зависимость от пути "F:\Musiс\". Простое удаление этой строки, ессно, ничего не дает. Я не силен в написании плей-листов, подскажите.  

Всего записей: 3 | Зарегистр. 03-08-2016 | Отправлено: 17:06 17-11-2020 | Исправлено: tulipp, 17:54 17-11-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tulipp
для *.m3u или m3u8 путь и имя корневой папки не нужны, а для остальных папок оставьте только имя

Цитата:
Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac  
Jean Michel Jarre\Albums\1976 - Oxygene (Released 1983)\Jean-Michel Jarre - Oxygene.flac

должно работать. Но для универсальности лучше создать *.m3u только с именами и разместить их в соответствующих папках т.е. в папке  '1976 - Oxygene (Released 1983)' *.m3u вида

Цитата:
 
Jean-Michel Jarre - Oxygene.flac
Jean-Michel Jarre - Oxygene.flac
 

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 19:22 17-11-2020 | Исправлено: los, 19:23 17-11-2020
tulipp

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Как Вы посоветовали ничего не вышло.  

Цитата:
для *.m3u или m3u8 путь и имя корневой папки не нужны, а для остальных папок оставьте только имя

Увы у меня они требуют путь, иначе снова выскакивает сообщение "файл не найден". Должно быть я чего-то не понимаю, но я хотел, чтобы в файле плей-листа был относительный путь, а не абсолютный. А как это реализовать, я не знаю, лишь смутно помню, что должно быть что-то типа "% %", но конкретно как и в каком месте - не помню. В инете пока не могу найти. Придется порыться в старых батниках, в которых я когда-то уже прописывал относительные пути для выполнения определенных команд, и на их примере что-нить придумаю (вот только, если они сохранились)... будем искать

Всего записей: 3 | Зарегистр. 03-08-2016 | Отправлено: 15:35 18-11-2020
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Общие » Флейм » Как автоматически создать плейлисты


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru