Files
janssen/claude-memory/project_euni_plex.md
2026-06-19 05:24:29 +02:00

2.8 KiB

name, description, metadata
name description metadata
project-euni-plex EUNI kurzy/videa do Plexu — stahovani z SeaweedFS + pojmenovani + metadata pres Plex API
node_type type originSessionId
memory project 8a74232a-2f15-43de-8a65-edc8f96fde36

Export EUNI kurzů do Plexu (knihovna EUNI, typ Other Videos). Skripty v U:\janssen\EUNI\.

  • Zdroj dat: Mongo db EUNI (na .76, viz project-seaweedfs) — kolekce kurzy (274 dok: nazev/autor/akreditace/kredity/profese/datum_publikace/url/slug) a materialy (1034 dok: druh dokument|video, kurz_id, seaweed_path/fids/size). Videa: 338, z toho 334 v SeaweedFS. Všechny kurzy profese=[2] = Lékař (batch filtrovaný na lékaře; další profese se teprve dotáhnou).
  • Bloby: SeaweedFS filer http://192.168.1.50:8888/<seaweed_path> (raw GET, URL-encode po segmentech).
  • Plex: http://192.168.1.76:32400, sekce 23 = EUNI (type movie). Token = PlexOnlineToken v Preferences.xml (binhex-plexpass appdata na .76). API edit: PUT /library/sections/23/all?type=1&id=<ratingKey>&<pole>.value=...&<pole>.locked=1 (lock = sken nepřepíše). Štítky genre[0].tag.tag=..., poster POST /library/metadata/<rk>/posters?url=.
  • plex_export.py — stáhne 334 videí (~119 GiB) z fileru na \\tower\PlexBinHex\EUNI. Idempotentní (.part + kontrola velikosti, hotové skipuje), log _export_log.txt. Konvence názvu:
    • single-video kurz: <Nazev> - <Prijmeni> (<rok>).mp4
    • multi-video kurz (54 ks, většinou série rovnocenných přednášek, ne hlavni+balast): <Nazev> - <NN> <segment> (<rok>).mp4, autor vynechán. Pořadí NN: nejdřív explicitní číslo v názvu (1., TABAK_01, p01, část 2), jinak vimeo id (chronologicky), jinak abecedně. Příjmení = vše po křestním jménu po stripu titulů/hodností (drží dvojitá příjmení).
  • plex_meta.py — 2. průchod po skenu: spáruje Plex položku s kurzem podle názvu (sdílí build_plan/order_items/seg_label z plex_export) a zapíše+zamkne: originallyAvailableAt=datum_publikace, studio=EUNI, summary (autor+akreditace+kredity+url), genre „EUNI kurz"+profese (PROFESE dict {2:"Lékař"}), label „EUNI", u multi-video collection=nazev kurzu. Token přes PLEX_TOKEN env nebo --token.
    • Poster: zápis metadat přes API shodí u Other Videos výběr posteru na černý 1. snímek. plex_meta.py proto po zápisu zavolá fix_poster() — vybere největší z auto-generovaných náhledů (/library/metadata/<rk>/postersmedia://…thumbN.jpg, PUT /poster?url=). Vypnout --no-poster. euni.cz oficiální obrázek nedává (JS/login).
  • Postup: python plex_export.py → Plex Scan Library Files → python plex_meta.py. Pouštět na drátovém stroji (ne notebook přes wifi). Ověřeno end-to-end na kurzu Diagnostika CRP (ratingKey 80992).