Правильное название композиции, играющей на радио — залог успеха. Более того, правильно сформированные и заполненные поля исполнителя и названия трека могут пригодиться при регистрации в каталогах и взаимодействии с их API, например, как я сделал с TuneIn. В этой статье я расскажу о том, как сделать правильное отображение метаданных. Ранее я уже рассказывал о том, как использовать имя файла, если у него не прописаны теги, а так же что такое map_metadata. Здесь же я представлю более крутую, расширенную версию, в которой будут корректно заполнены все нужные поля.

def update_title(m) =
        title = m["title"]
        # Если названия композиции нет - пробуем извлечь его из имени файла
        if title == "" or title == "Unknown" then
                # Получаем имя файла
                content = m["filename"]
                # Отрезаем путь
                content = basename (content)
                # Извлекаем метаданные регулярным выражением, предполагая,
                # что имена файлов записаны в стандартном виде: Исполнитель - Название.flac
                meta = string.extract(pattern='(.+)\s+-\s+(.+)\.[a-zA-Z0-9]{1,5}', content)
                # ...где: 
                sArtist = meta["1"] # исполнитель
                sTitle  = meta["2"] # название трека
                # Возвращаем исправленные метаданные
                [("title", sTitle),
                 ("artist", sArtist)]
        else # иначе просто исправим кодировку, на всякий пожарный
                sArtist = string.recode(out_enc="UTF-8", m["artist"])
                sTitle = string.recode(out_enc="UTF-8", m["title"])
                [("title", sTitle),
                 ("artist", sArtist)]
        end
end

# Не забываем назначить функцию
radio = map_metadata(update_title, radio)

Далее читайте как зарегистрировать станцию в каталогах радио. Успехов! :3