Füge Unterstützung für Kommentar-Tags in MP3-Metadaten hinzu und zeige gefundene Kommentare in der Ausgabe an.

This commit is contained in:
2025-07-06 11:03:38 +02:00
parent 29c2bfc6f1
commit f509f898ef

View File

@ -81,12 +81,25 @@ class LocalPodcastGenerator:
album = None
duration = None
cover_data = None
comment = None
if audio.tags:
title = str(audio.tags.get('TIT2', [''])[0]) if audio.tags.get('TIT2') else None
artist = str(audio.tags.get('TPE1', [''])[0]) if audio.tags.get('TPE1') else None
album = str(audio.tags.get('TALB', [''])[0]) if audio.tags.get('TALB') else None
# Comment-Tag extrahieren (COMM = Comment)
if audio.tags.get('COMM::eng'):
comment = str(audio.tags.get('COMM::eng', [''])[0])
elif audio.tags.get('COMM'):
# Fallback für allgemeine COMM-Tags
comment_tags = audio.tags.getall('COMM')
if comment_tags:
comment = str(comment_tags[0])
if comment:
print(f" 💬 Comment gefunden: {comment[:50]}...")
# Cover-Art extrahieren (APIC = Attached Picture)
# Versuche verschiedene APIC-Tag-Varianten
for key in audio.tags.keys():
@ -122,7 +135,8 @@ class LocalPodcastGenerator:
'file_size': file_size,
'pub_date': pub_date,
'filename': file_path.name,
'cover_data': cover_data
'cover_data': cover_data,
'comment': comment
}
except Exception as e:
@ -136,7 +150,8 @@ class LocalPodcastGenerator:
'file_size': file_path.stat().st_size,
'pub_date': datetime.fromtimestamp(file_path.stat().st_mtime),
'filename': file_path.name,
'cover_data': None
'cover_data': None,
'comment': None
}
def extract_episode_cover(self, metadata, episode_index):
@ -404,6 +419,9 @@ Ich spezialisiere mich auf House Music, die mehr als nur Beats bietet sie er
print(f"\n🎵 Episode {episode_index + 1}: {metadata['title']}")
print(f" 📄 Datei: {metadata['filename']}")
print(f" 🎨 Cover-Daten vorhanden: {'Ja' if metadata['cover_data'] else 'Nein'}")
print(f" 💬 Comment vorhanden: {'Ja' if metadata['comment'] else 'Nein'}")
if metadata['comment']:
print(f" 📝 Comment: {metadata['comment'][:100]}{'...' if len(metadata['comment']) > 100 else ''}")
# Episode-Cover extrahieren
episode_cover_url = self.extract_episode_cover(metadata, episode_index)
@ -424,6 +442,11 @@ Ich spezialisiere mich auf House Music, die mehr als nur Beats bietet sie er
description_text = f"Mix von {metadata['artist']}"
if metadata['album']:
description_text += f" aus {metadata['album']}"
# Füge Comment hinzu falls vorhanden
if metadata['comment'] and metadata['comment'].strip():
description_text += f"\n\n{metadata['comment']}"
item_description.text = description_text
# Link zur Episode-Seite (nicht zur Audio-Datei)