# M3u playlist - 'mp3 format is not supported'

**URL:** <https://forum.espuino.de/t/m3u-playlist-mp3-format-is-not-supported/3329>\
**Category:** Software\
**Created:** [14. November 2024 um 21:04 UTC](https://forum.espuino.de/t/m3u-playlist-mp3-format-is-not-supported/3329 "2024-11-14T21:04:38Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![h4kun4m4t4t4](https://forum.espuino.de/user_avatar/forum.espuino.de/h4kun4m4t4t4/32/1489_2.png) [@h4kun4m4t4t4](https://forum.espuino.de/u/h4kun4m4t4t4)\
**Post date:** [14. November 2024 um 21:04 UTC](https://forum.espuino.de/t/m3u-playlist-mp3-format-is-not-supported/3329/1 "2024-11-14T21:04:38Z")

</div>

Hallo,

ich hab mir eine m3u Datei zusammengebastelt, um dort aus verschiedenen Ordnern eine Playlist zu erstellen - 2 Dateien sind der Inhalt:

 ![playlist-m3u-carriageReturmLineFeedIssue](https://forum.espuino.de/uploads/default/original/2X/3/341fc1f5db8015f28aad686f9aa9fe2c25efd016.png)

Die 1. Datei kann nicht abgespielt werden, die 2. schon.

```auto
I [1860330] info : Reading file: "/Kinder/Hoerbuecher/Der Raeuber Hotzenplotz/Folge 01 - Der Raeuber Hotzenplotz.mp3
"
I [1860369] info : The .mp3 format is not supported
I [1860369] info : Closing audio file "Folge 01 - Der Raeuber Hotzenplotz.mp3
"
I [1860400] info : buffers freed, free Heap: 124036 bytes
...
I [1860867] info : Reading file: "/Kinder/Hoerbuecher/Der wilde Raeuber Donnerpups/04. Der Raeuberschatz.mp3"
I [1860890] info : MP3Decoder has been initialized, free Heap: 100568 bytes , free stack 3208 DWORDs

```

An dem Log sieht man schon, dass der Inhalt der m3u Datei anscheinend fehlerhaft geparsed wird und der ‚Carriage Return‘ das abspielen scheitern lässt.

Ich hab ein wenig rumprobiert und mit einem simplen „linefeed“ können die angegebenen Dateien abgespielt werden.

 ![playlist-m3u-LineFeed](https://forum.espuino.de/uploads/default/original/2X/9/98d50dd2bf2c732f849b9f7918411969c7d62dc4.png)

```auto
Mode: Webstream (local .m3u-file)
N [2615255] New playlist received with 2 track(s)
D [2615256] Free heap: 96976
I [2615277] info : buffers freed, free Heap: 121772 bytes
I [2615296] info : Reading file: "/Kinder/Hoerbuecher/Der Raeuber Hotzenplotz/Folge 01 - Der Raeuber Hotzenplotz.mp3"
I [2615326] info : MP3Decoder has been initialized, free Heap: 98060 bytes , free stack 3208 DWORDs

```

Das Format der m3u Datei ist **UTF-8**.

**ESPuino Software-revision: 20240504-1**

Ist das so gedacht? Oder sollte man das parsen an der Stelle korrigieren/robuster gestalten?

---

<div class="post-metadata">

**Author:** ![biologist](https://forum.espuino.de/user_avatar/forum.espuino.de/biologist/32/66_2.png) [@biologist](https://forum.espuino.de/u/biologist)\
**Post date:** [14. November 2024 um 21:59 UTC](https://forum.espuino.de/t/m3u-playlist-mp3-format-is-not-supported/3329/2 "2024-11-14T21:59:36Z")

</div>

Gehe mal in die SdCard.cpp und dort in Zeile 296:

```auto
	// normal m3u is just a bunch of filenames, 1 / line
	f.seek(0);
	while (f.available()) {
		String line = f.readStringUntil('\n');
		if (line.endsWith("\r")) {
			line.trim();
		}
		// save string
		if (!SdCard_allocAndSave(playlist, line)) {
			return std::nullopt;
		}
	}

```

Die drei Zeilen, die nachfolgend grün markiert sind, habe ich dort eingefügt. Teste das bitte mal, ob das dein Problem behebt, wenn du das auch bei dir einfügst. Hab’s selbst nicht getestet. Vielleicht geht das auch eleganter @laszloh!?

 ![Code-Anpassung](https://forum.espuino.de/uploads/default/original/2X/7/712c8a3dc6d08816446dfef079b249f57aed21f2.png)

---

<div class="post-metadata">

**Author:** ![h4kun4m4t4t4](https://forum.espuino.de/user_avatar/forum.espuino.de/h4kun4m4t4t4/32/1489_2.png) [@h4kun4m4t4t4](https://forum.espuino.de/u/h4kun4m4t4t4)\
**Post date:** [16. November 2024 um 17:55 UTC](https://forum.espuino.de/t/m3u-playlist-mp3-format-is-not-supported/3329/3 "2024-11-16T17:55:34Z")

</div>

Hi, danke.  
Ich komme leider aktuell nicht dazu die Box zu flashen und zu testen. Aber der ‚trim‘ Befehl an der Stelle klingt mMn sinnvoll.  
Müsste man ggf. nicht mal auf „\r“ checken und einfacher immer trimmen. Wenn es nichts zu trimmen gibt, macht der Befehl ja nichts.

Hab mich jetzt auch ein wenig von der m3u Liste verabschiedet. Man kann dort keinen Fortschritt der Datei speichern und eine endless loop ist wohl auch nicht so einfach zu realisieren.

MfG

---

<div class="post-metadata">

**Author:** ![h4kun4m4t4t4](https://forum.espuino.de/user_avatar/forum.espuino.de/h4kun4m4t4t4/32/1489_2.png) [@h4kun4m4t4t4](https://forum.espuino.de/u/h4kun4m4t4t4)\
**Post date:** [16. November 2024 um 22:37 UTC](https://forum.espuino.de/t/m3u-playlist-mp3-format-is-not-supported/3329/4 "2024-11-16T22:37:55Z")

</div>

Hi, hab heute Abend dochmal ein wenig Zeit freischaufeln können.

Ich hab mir die entsprechende Stelle im Source Code mal angeschaut. Der „Trim“ Befehl hilft an dieser Stelle. Ich hab mir trotzdem erlaubt einen PR (@tueddy, @biologist) zu stellen [SdCard.cpp -\> simplify 'SdCard\_ParseM3UPlaylist' and fix parsing by h4kun4m4t4t4 · Pull Request #351 · biologist79/ESPuino · GitHub](https://github.com/biologist79/ESPuino/pull/351) der die Methode ein wenig vereinfacht. Aus meiner Sicht ist es nicht nötig an der Stelle zw. „extended“ und „normalem“ M3U Format zu unterscheiden. Kommentare mit „#“ werden einfach immer ignoriert und es wird immer „getrimmt“. Bei mir funktioniert es soweit.

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [17. November 2024 um 16:49 UTC](https://forum.espuino.de/t/m3u-playlist-mp3-format-is-not-supported/3329/5 "2024-11-17T16:49:26Z")

</div>

Sieht soweit gut aus & meine M3U-Testdateien spielen weiterhin ab.  
Hab’s übernommen, @h4kun4m4t4t4 Vielen Dank für deine Mitwirkung!
