feat(yt): indeks over kanaler, playlister og videoer til Emby-kanal-plugin'et
Emby kan kun vise serie, sæson og afsnit, men på YouTube har en kanal både videoer og playlister, og en video kan ligge i flere playlister. Kanal-plugin'et (agw/emby-yt-kanaler) viser Kanal: Alle videoer og Playlister, og det læser dette indeks, som portalen skriver. - skriv_indeks(): bygger DOWNLOAD_DIR/.weircon-index.json (version 1) ud fra NFO'er, billeder og undertekster på disken og playliste-cachen. Kun hentede videoer kommer med i playlisterne, i YouTubes rækkefølge. Skrives atomisk og efter hver hentning og sletning (via refresh_library). - opdater_playlister(): henter kanalernes playlister med yt-dlp (højst ugentligt pr. kanal) plus portalens egne playliste-job og -abonnementer, og playlistens miniature til <Kanal>/.playlists/<id>.jpg. Køres natligt. - emby_yt_items(): lægger set/favorit fra Emby-kanalen "YouTube" oven i biblioteket for samme fil, så slettereglen og fredningen virker, uanset hvor videoen blev set. Claude-Session: https://claude.ai/code/session_012LCTmU2ewo8tnM1dByYAoG
This commit is contained in:
@@ -51,6 +51,20 @@ async def main():
|
||||
for e in cyc["errors"]:
|
||||
print(" cyklus-fejl:", e)
|
||||
|
||||
# Kanal-plugin'ets indeks: playlister (højst ugentligt pr. kanal) og så indekset.
|
||||
try:
|
||||
pl = await ytdl.opdater_playlister()
|
||||
print(f"yt_job: playlister opdateret for {pl['kanaler']} kanaler, {pl['playlister']} i alt")
|
||||
for e in pl["fejl"][:10]:
|
||||
print(" playliste-fejl:", e)
|
||||
except Exception as e: # noqa: BLE001
|
||||
print(f"yt_job: playlister kunne ikke opdateres: {e}")
|
||||
try:
|
||||
ix = ytdl.skriv_indeks()
|
||||
print(f"yt_job: indeks: {ix['channels']} kanaler, {ix['videos']} videoer, {ix['playlists']} playlister")
|
||||
except Exception as e: # noqa: BLE001
|
||||
print(f"yt_job: indekset kunne ikke skrives: {e}")
|
||||
|
||||
res = await ytdl.run_cycle(dry_run=False)
|
||||
if res.get("error"):
|
||||
print("yt_job FEJL:", res["error"])
|
||||
|
||||
Reference in New Issue
Block a user