로제 'APT.'

song = {
    "artist": "로제",
    "title": "APT.",
    "feat": "Bruno Mars",
    "album": "rosie",
    "album_type": "정규 앨범",
    "cover": "/assets/music/rosie.jpg",
    "track": 6,
    "year": 2024,
    "youtube": "ekr2nIex040"
}

from IPython.display import HTML

HIDDEN = {"youtube"}  # 영상은 아래 칸에서 재생

def show(k, v):
    if k == "cover":
        return f'<img src="{v}" alt="{song["album"]} 커버" width="200">'
    return v

HTML('<table>' + ''.join(f'<tr><th>{k}</th><td>{show(k, v)}</td></tr>' for k, v in song.items() if v is not None and k not in HIDDEN) + '</table>')
artist 로제
title APT.
feat Bruno Mars
album rosie
album_type 정규 앨범
cover rosie 커버
track 6
year 2024
from IPython.display import YouTubeVideo
YouTubeVideo(song['youtube'], width=640, height=360)