{
 "_note": "REAL FLUO videos, LOCAL PROTOTYPE ONLY (2026-11-11). 18 finals from FLUO's Dropbox (02 Long Term Clients/*/Deliverables), compressed to 720p. Titles, topics, short texts, spoken language and 'ranOn' are drafts written by Claude from video frames and local transcripts (Whisper, on this Mac): Charel checks them. Titles, summaries and goals were rewritten people-first on 2026-11-11, see titles-v2.md. Before anything goes online, only videos with the client's written OK may stay (discretion rule). The stand-in library is kept in videos.stand-in.json.",
 "fields": {
  "id": "Short number, also the page address (fluo.lu/v/014). Never reused.",
  "title": "Shown on the page and to Google. One entry per site language.",
  "client": "name + credit (true only with the client's written OK).",
  "topics": "Concept ids from concepts.json. The search finds the video by these.",
  "clientType": "commune | ministry | institution | company | association",
  "contentType": "people | event | place  (the three doors of 'Just show me')",
  "language": "spoken + subtitles",
  "format": "vertical | horizontal",
  "summary": "1-2 sentences (max 220 characters): who we see, what they do, why it matters to the people watching. One entry per site language.",
  "goal": "What the client wanted the film to do: 2-5 words starting with a verb (e.g. 'Find new staff'). Shown on the page as the client's need. One entry per site language.",
  "visibility": "public | hidden  (public only with the client's written OK)",
  "order": "Lower comes first when two videos match equally.",
  "media": "poster + muted loop for tiles; 'stream' is the Bunny Stream id once uploaded.",
  "source": "File name of the final in FLUO's Dropbox (Deliverables)."
 },
 "videos": [
  {
   "id": "101",
   "slug": "commune-hr-team",
   "title": {
    "en": "Caring for the staff who serve you"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "staff",
    "jobs",
    "faces"
   ],
   "clientType": "commune",
   "contentType": "people",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 61,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Two colleagues run the commune's HR office: digital staff files, pay, working time and leave. Their point: staff who feel looked after give residents a better service."
   },
   "goal": {
    "en": "Introduce the HR team"
   },
   "visibility": "public",
   "order": 10,
   "media": {
    "poster": "media/real/r01.webp",
    "video": "media/real/r01.mp4",
    "loop": "media/real/r01-loop.mp4",
    "stream": null
   },
   "source": "2025-11-05 AJC Ressources Humains.mp4",
   "standIn": false
  },
  {
   "id": "102",
   "slug": "letzfarm-classroom",
   "title": {
    "en": "Showing children where their food comes from"
   },
   "client": {
    "name": "Ministère de l'Agriculture, de l'Alimentation et de la Viticulture",
    "credit": true
   },
   "topics": [
    "agriculture",
    "school",
    "children",
    "people"
   ],
   "clientType": "ministry",
   "contentType": "people",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 30,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Teacher Wendy Hermann says why her school joined LetzFarm: many pupils live on farms, so the class goes out to see where the food they buy and eat comes from."
   },
   "goal": {
    "en": "Bring schools to the farm"
   },
   "visibility": "public",
   "order": 20,
   "media": {
    "poster": "media/real/r02.webp",
    "video": "media/real/r02.mp4",
    "loop": "media/real/r02-loop.mp4",
    "stream": null
   },
   "source": "2025-03-31 MAG LetzFarm Wendy Hermann Statement.mp4",
   "standIn": false
  },
  {
   "id": "103",
   "slug": "cigl-proximity-team",
   "title": {
    "en": "Help for seniors, a new start for workers"
   },
   "client": {
    "name": "CIGL Walferdange",
    "credit": true
   },
   "topics": [
    "jobs",
    "staff",
    "service",
    "environment",
    "seniors"
   ],
   "clientType": "association",
   "contentType": "people",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 71,
   "year": 2026,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "A CIGL team of 8 to 10 people on the way back into work mows, cuts hedges, does small repairs and cleans terraces for residents over 60: about 3,000 visits a year."
   },
   "goal": {
    "en": "Offer home help to seniors"
   },
   "visibility": "public",
   "order": 30,
   "media": {
    "poster": "media/real/r03.webp",
    "video": "media/real/r03.mp4",
    "loop": "media/real/r03-loop.mp4",
    "stream": null
   },
   "source": "2026-07-10 CIG Service Proximite.mp4",
   "standIn": false
  },
  {
   "id": "104",
   "slug": "childrens-council",
   "title": {
    "en": "Children who get a say in their school"
   },
   "client": {
    "name": "Gemeng Schengen",
    "credit": true
   },
   "topics": [
    "children",
    "youth",
    "people",
    "environment"
   ],
   "clientType": "commune",
   "contentType": "people",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 88,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Pupils sit on the children's council so that everyone feels safe and has fun at school. They ran a cocktail day, raised money for Télévie and met the commune."
   },
   "goal": {
    "en": "Show children having a say"
   },
   "visibility": "public",
   "order": 40,
   "media": {
    "poster": "media/real/r04.webp",
    "video": "media/real/r04.mp4",
    "loop": "media/real/r04-loop.mp4",
    "stream": null
   },
   "source": "2025-11-12 GS Kannerrot V02.mp4",
   "standIn": false
  },
  {
   "id": "105",
   "slug": "girls-in-ict-day",
   "title": {
    "en": "Girls meet women who work in tech"
   },
   "client": {
    "name": "Ministère de l'Égalité des genres et de la Diversité",
    "credit": true
   },
   "topics": [
    "equality",
    "school",
    "jobs",
    "event"
   ],
   "clientType": "ministry",
   "contentType": "people",
   "language": {
    "spoken": "fr",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 60,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "At Girls in ICT Day, pupils listen to and question women who work in IT. The organisers want to break gender stereotypes in tech and give girls real chances."
   },
   "goal": {
    "en": "Encourage girls into tech"
   },
   "visibility": "public",
   "order": 50,
   "media": {
    "poster": "media/real/r05.webp",
    "video": "media/real/r05.mp4",
    "loop": "media/real/r05-loop.mp4",
    "stream": null
   },
   "source": "2025-04-27 MEGA Girls in ICT Day Recap Reel.mp4",
   "standIn": false
  },
  {
   "id": "106",
   "slug": "hunnerfeier-schengen",
   "title": {
    "en": "Why is it called the Rooster Festival?"
   },
   "client": {
    "name": "Gemeng Schengen",
    "credit": true
   },
   "topics": [
    "festival",
    "event",
    "autumn"
   ],
   "clientType": "commune",
   "contentType": "event",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 64,
   "year": 2026,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Visitors at the Hunnefeier are asked why the festival has its name. The guesses are funny; the answer goes back to the end of the grape harvest. See you next year!"
   },
   "goal": {
    "en": "Explain a local tradition"
   },
   "visibility": "public",
   "order": 60,
   "media": {
    "poster": "media/real/r06.webp",
    "video": "media/real/r06.mp4",
    "loop": "media/real/r06-loop.mp4",
    "stream": null
   },
   "source": "2026-10-18 GS Hunnerfeier v3.mp4",
   "standIn": false
  },
  {
   "id": "107",
   "slug": "fete-de-la-musique-junglinster",
   "title": {
    "en": "A whole town celebrates National Day together"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "music",
    "festival",
    "event",
    "summer",
    "national-day"
   ],
   "clientType": "commune",
   "contentType": "event",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 67,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "A parade, a church service and the mayor's thanks, then bands and a DJ until late: young and old celebrate the eve of National Day together on the square."
   },
   "goal": {
    "en": "Share the National Day party"
   },
   "visibility": "public",
   "order": 70,
   "media": {
    "poster": "media/real/r07.webp",
    "video": "media/real/r07.mp4",
    "loop": "media/real/r07-loop.mp4",
    "stream": null
   },
   "source": "2025-06-23 ACJ Fête de la Musique.mp4",
   "standIn": false
  },
  {
   "id": "108",
   "slug": "lenster-maart",
   "title": {
    "en": "Local clubs welcome you to their market"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "market",
    "event",
    "volunteers",
    "music"
   ],
   "clientType": "commune",
   "contentType": "event",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 43,
   "year": 2026,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "The football club, the Lënster Trëppler and the bands run stands, cook traditional dumplings and play music. The mayor invites everyone to come and enjoy the weekend."
   },
   "goal": {
    "en": "Invite people to the market"
   },
   "visibility": "public",
   "order": 80,
   "media": {
    "poster": "media/real/r08.webp",
    "video": "media/real/r08.mp4",
    "loop": "media/real/r08-loop.mp4",
    "stream": null
   },
   "source": "2026-09-28 ACJ Lënster Maart.mp4",
   "standIn": false
  },
  {
   "id": "109",
   "slug": "new-pickleball-courts",
   "title": {
    "en": "Pickleball courts for young and old"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "sport",
    "inauguration",
    "building",
    "pickleball"
   ],
   "clientType": "commune",
   "contentType": "place",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 41,
   "year": 2026,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Officials open the new courts and players try the first rallies of pickleball, a young sport here. The commune sees it as a place where children, adults and seniors meet."
   },
   "goal": {
    "en": "Open the new pickleball courts"
   },
   "visibility": "public",
   "order": 90,
   "media": {
    "poster": "media/real/r09.webp",
    "video": "media/real/r09.mp4",
    "loop": "media/real/r09-loop.mp4",
    "stream": null
   },
   "source": "2026-07-09 ACJ Inauguration Terrain Tennis.mp4",
   "standIn": false
  },
  {
   "id": "110",
   "slug": "playground-inauguration",
   "title": {
    "en": "A playground the children helped design"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "inauguration",
    "playground",
    "children",
    "event"
   ],
   "clientType": "commune",
   "contentType": "event",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 43,
   "year": 2026,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "The commune opens a wooden playground planned with residents, above all with children who brought their own ideas. The agriculture ministry supports such projects to keep villages lively."
   },
   "goal": {
    "en": "Show the new playground"
   },
   "visibility": "public",
   "order": 100,
   "media": {
    "poster": "media/real/r10.webp",
    "video": "media/real/r10.mp4",
    "loop": "media/real/r10-loop.mp4",
    "stream": null
   },
   "source": "2026-07-06 ACJ Aweiung Spillplaz V02.mp4",
   "standIn": false
  },
  {
   "id": "111",
   "slug": "cigl-christmas-market",
   "title": {
    "en": "Upcycled gifts and a kids' workshop for Christmas"
   },
   "client": {
    "name": "CIGL Walferdange",
    "credit": true
   },
   "topics": [
    "christmas",
    "market",
    "event"
   ],
   "clientType": "association",
   "contentType": "event",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 28,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "The CréAction upcycling workshop shows its handmade Christmas pieces and invites families to its market on 29 November, with a children's workshop printing on fabric bags."
   },
   "goal": {
    "en": "Invite families to the market"
   },
   "visibility": "public",
   "order": 110,
   "media": {
    "poster": "media/real/r11.webp",
    "video": "media/real/r11.mp4",
    "loop": "media/real/r11-loop.mp4",
    "stream": null
   },
   "source": "2025-11-26 CIG Teaser Chreschtmoart V02.mp4",
   "standIn": false
  },
  {
   "id": "112",
   "slug": "council-of-europe",
   "title": {
    "en": "Giving citizens a say in their commune"
   },
   "client": {
    "name": "Ministère des Affaires intérieures",
    "credit": true
   },
   "topics": [
    "official-visit",
    "europe",
    "event"
   ],
   "clientType": "ministry",
   "contentType": "event",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 66,
   "year": 2026,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "In Strasbourg the minister signs the protocol on citizen participation, with the communes' association present: residents should help decide on big local projects."
   },
   "goal": {
    "en": "Explain a new citizens' right"
   },
   "visibility": "public",
   "order": 120,
   "media": {
    "poster": "media/real/r12.webp",
    "video": "media/real/r12.mp4",
    "loop": "media/real/r12-loop.mp4",
    "stream": null
   },
   "source": "2026-11-09 MAI Conceil de l'Europe V02.mp4",
   "standIn": false
  },
  {
   "id": "113",
   "slug": "citizens-office-junglinster",
   "title": {
    "en": "The first face you meet at the commune"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "citizens-office",
    "service",
    "how-to",
    "digital"
   ],
   "clientType": "commune",
   "contentType": "place",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 75,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Michèle from the population office explains what residents can get there: certificates, parental authorisations, ID cards and passports, photo taken on the spot."
   },
   "goal": {
    "en": "Explain what the office does"
   },
   "visibility": "public",
   "order": 130,
   "media": {
    "poster": "media/real/r13.webp",
    "video": "media/real/r13.mp4",
    "loop": "media/real/r13-loop.mp4",
    "stream": null
   },
   "source": "2025-08-29 ACJ Service population.mp4",
   "standIn": false
  },
  {
   "id": "114",
   "slug": "gardening-service",
   "title": {
    "en": "The gardeners who work for you"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "gardening",
    "service",
    "environment",
    "jobs"
   ],
   "clientType": "commune",
   "contentType": "place",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 84,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Anthony, head of the gardening service, shows his teams at work: flower beds, playgrounds and parks, roadsides, green-waste containers. He ends with a big thank-you to them."
   },
   "goal": {
    "en": "Introduce the gardening team"
   },
   "visibility": "public",
   "order": 140,
   "media": {
    "poster": "media/real/r14.webp",
    "video": "media/real/r14.mp4",
    "loop": "media/real/r14-loop.mp4",
    "stream": null
   },
   "source": "2025-07-24 ACJ Service Jardinage.mp4",
   "standIn": false
  },
  {
   "id": "115",
   "slug": "technical-service-moves",
   "title": {
    "en": "The technical team drives into its new home"
   },
   "client": {
    "name": "Gemeng Schengen",
    "credit": true
   },
   "topics": [
    "technical-service",
    "building",
    "service"
   ],
   "clientType": "commune",
   "contentType": "place",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 23,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Tractors, trucks and vans roll into the new building of the technical service. The team spends the morning finding the right place for every vehicle."
   },
   "goal": {
    "en": "Announce the team's new building"
   },
   "visibility": "public",
   "order": 150,
   "media": {
    "poster": "media/real/r15.webp",
    "video": "media/real/r15.mp4",
    "loop": "media/real/r15-loop.mp4",
    "stream": null
   },
   "source": "2025-02-07 GS Déménagement Service technique.mp4",
   "standIn": false
  },
  {
   "id": "116",
   "slug": "tiny-forest",
   "title": {
    "en": "Families plant 2,550 trees on an old playground"
   },
   "client": {
    "name": "Commune de Junglinster",
    "credit": true
   },
   "topics": [
    "trees",
    "environment",
    "children",
    "volunteers"
   ],
   "clientType": "commune",
   "contentType": "place",
   "language": {
    "spoken": "lb",
    "subtitles": []
   },
   "format": "vertical",
   "durationSec": 56,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Children, parents and the commune turn an unused former playground into a Tiny Forest: 2,550 young trees on 850 m², for the climate and for biodiversity."
   },
   "goal": {
    "en": "Show a forest planted together"
   },
   "visibility": "public",
   "order": 160,
   "media": {
    "poster": "media/real/r16.webp",
    "video": "media/real/r16.mp4",
    "loop": "media/real/r16-loop.mp4",
    "stream": null
   },
   "source": "2025-10-25 ACJ Tiny Forest.mp4",
   "standIn": false
  },
  {
   "id": "117",
   "slug": "cigl-playground-service",
   "title": {
    "en": "The team that keeps 24 playgrounds safe"
   },
   "client": {
    "name": "CIGL Walferdange",
    "credit": true
   },
   "topics": [
    "playground",
    "service",
    "safety",
    "jobs"
   ],
   "clientType": "association",
   "contentType": "place",
   "language": {
    "spoken": "fr",
    "subtitles": [
     "lb"
    ]
   },
   "format": "vertical",
   "durationSec": 76,
   "year": 2025,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Valentin Morel's CIGL team mows, cleans and checks the commune's 24 playgrounds against the safety rules and repairs what is broken. The commune has worked with them for over ten years."
   },
   "goal": {
    "en": "Show who keeps playgrounds safe"
   },
   "visibility": "public",
   "order": 170,
   "media": {
    "poster": "media/real/r17.webp",
    "video": "media/real/r17.mp4",
    "loop": "media/real/r17-loop.mp4",
    "stream": null
   },
   "source": "2025-05-07 CIG Service aires de jeux.mp4",
   "standIn": false
  },
  {
   "id": "118",
   "slug": "world-water-day",
   "title": {
    "en": "The water we never think about"
   },
   "client": {
    "name": "Gemeng Schengen",
    "credit": true
   },
   "topics": [
    "water",
    "environment",
    "service"
   ],
   "clientType": "commune",
   "contentType": "place",
   "language": {
    "spoken": "lb",
    "subtitles": [
     "de"
    ]
   },
   "format": "vertical",
   "durationSec": 54,
   "year": 2026,
   "ranOn": [
    "Social media"
   ],
   "summary": {
    "en": "Brushing teeth, a kettle, a drink after a run: water is part of every moment of the day. The commune reminds residents that excellent tap water is not a given everywhere."
   },
   "goal": {
    "en": "Make people value tap water"
   },
   "visibility": "public",
   "order": 180,
   "media": {
    "poster": "media/real/r18.webp",
    "video": "media/real/r18.mp4",
    "loop": "media/real/r18-loop.mp4",
    "stream": null
   },
   "source": "2026-03-20 GS Journée de l'Eau.mp4",
   "standIn": false
  }
 ]
}