Beiträge von harryberlin

    System:
    osmc für Raspberry 3, sollte Debian Buster sein,
    oder aktuelles Libreelec für den Rasp 3. Was für Linux das ist, weiß ich nicht.

    Quelle:
    z.B.: "/home/osmc/music"
    Also einfach die Wiedergabe der Datei starten. Kodi erzeugt selbst die Wiedergabeiste. Den String des Dateinamens erzeugt Kodi, wenn es die Tracks gerade abspielt. Es ist die Kodi eigene Wiedergabeliste. Wie/Was Kodi genau macht müsste man wohl dem Source entnehmen.

    Testmusiktracks:
    Es gehört nicht viel dazu, einfach ein paar Sonderzeichen in den Dateiname ergänzen. https://drive.google.com/drive/folders/…yOf?usp=sharing

    TestAddon:
    siehe Zip im Anhang

    Hat etwas gedauert, aber leider ohne Erfolg.
    Dabei kommt sogar eine weniger eindeutige Fehlermeldung:

    leider nicht, selbst sowas einfaches erzeugt den unicodeerror:

    die pfade der media-dateien werden in die m3u Datei (Playlist im txt-format) geschrieben.
    die mediadateien haben sonderzeichen in ihrer benennung.
    die m3u datei kann dann kodi laden und man hat somit die playlist wieder.
    'wb' erwartet bytes statt stringes, da muss man die codierung selbst übernehmen. würde den gleichen fehler erzeugen.

    Ich kenne die Spielchen auch nur zugut.
    Unter Libre oder Coreelec funktioniert mMn nur unicode Dateinamen zu schreiben / einzulesen, liegt wohl am locale, bzw am verwendetem Charmap ANSI_X3.4-1968.
    Teste das doch mal aus.

    wie mache ich das?
    die Dateinamen lasse ich mir von Kodi aus der Playlist geben und schreibe es in die m3u.
    die m3u soll dann wieder in den Player geladen werden.

    btw. die Endung m3u8 macht da keinen Unterschied.

    with open(ADDON_M3UFILE, 'w', encoding='utf-8') as m3ufile:

    Dort nimmst du das encoding='utf-8' raus.

    Die [definition='1','0']log[/definition]/[definition=12,0]debug[/definition] Funktion solltest du nochmal überarbeiten und die Formatierung über f'... vermeiden und stattdessen mit Substitution %s arbeiten.

    Ich würde gerne präziser werden, nur am Handy ist das Sch..sse.

    bringt leider nix.

    kenne das %s von py2 und wird für py3 eigentlich nicht mehr verwendet, auch wenn es noh funktioniert.

    den Unicodeerror zum einenkommt in Zeile 27 mit

    Code
    xbmc.[definition='1','0']log[/definition](f'{ADDON_ID}: SRV: {msg}', XBMC_LOG_LEVEL)

    Zeile 27 lässt sich verbessern, wenn ich folgendes davor einfüge:
    msg = msg.encode('utf-8', 'surrogateescape').decode('ISO-8859-1')

    und in Zeile 64 mit

    Code
    m3ufile.write(f'#EXTINF:0,{temp}\n')


    , aber im Grunde bei jeder m3ufile.write(), wenn "Sonderzeichen" im Spiel sind.

    Erstmal,
    Python 2.7, oder 3.x ?

    Muss wohl Python 3 sein.

    ja, ist py3

    Ich kann auch nur raten, aber ich tippe darauf, dass die Dateinamen mit den Sonderzeichen nicht in UTF-8 kodiert sind. Lass dir mal den Hexcode eines problematischen Dateinamens ausgeben:

    Bash
    printf "%s\n" dateiname | od -t x1 -a

    schaut dann so aus:

    hab leider schon einiges mit encode und decode ausprobiert, aber ohne Erfolg.
    mit 'surrogateescape' kommt dasnn in der m3u unbrauchbares heraus, was ein laden der m3u nicht möglich macht.
    'replace' ist überhaupt keine lösung, weil das zeichen entfernt.

    Hallo Zusammen,

    ich bin so langsam am Ende, ich erhalte auf OSMC oder Libreelec einen Unicodeerror.

    Code
    UnicodeEncodeError: 'utf-8' codec can't encode characters in position 42-45: surrogates not allowed


    Habe ein Script, was mir ein M3U File erzeugt, was beim Abspielen von Medien mit Sonderzeichen (z.B. äöü) im Dateiname einen Error wirft.
    Der Error tritt unter Windows nicht auf.

    Ich hoffe ihr habt einen Rat für mich, andersfalls zweifle ich schon an, dass die PythonVersion auf Linuxsystemen nicht sauber integriert ist.

    Grüße in die Runde.

    Hab nun von Digibit Twin auf Digibit R1 umgerüstet und die alternative Firmware entdeckt.
    Jetzt habe ich einige Unklarheiten:
    Läuft auf dem Teil selbst der TvHeadendserver oder benötige ich weiterhin den Raspberry?
    Muss das TvHeadend noch darauf intstalliert werden? Wenn ja, wie geht das?
    Ist das Webinterface richtig, wenn nur die 4 Status der Tuner zu sehen ist?