Table of Contents

Prevue Guide Channel

A “Prevue Guide Channel” style companion site for AmigaZ Cablevision — meant to run as a fun background TV feed.

It follows the same pattern as Community Bulletin TV:

Location / URL

Related Pages


Features

Player

Editor


Weather Integration (WS4K+)

Weather cut-ins use the WS4K+ permalink approach.

Because the WS4K+ URL can be very long, we created a short redirect on the weather site:

Nginx snippet (weather.amigaz.org)

# Short link for Prevue (WS4K+ permalink redirect)
location = /p/prevue {
    return 302 "https://weather.amigaz.org/?(LONG_PERMALINK_HERE)&kiosk=true";
}

Use

302

while tweaking, then optionally switch to

301

later.


Video Playback / Rotation

/var/www/html/amigaz/prevue/videos/bumpers/

The player pulls the video list from:

Supported extensions currently include:

(Recommendation: MP4 H.264 + AAC for maximum browser compatibility.)


JSON Config

Main config:

It contains:

Example settings:

"weatherCutIn": {
  "enabled": true,
  "url": "https://weather.amigaz.org/p/prevue",
  "durationSeconds": 15,
  "mode": "betweenVideos",
  "everyNClips": 5
}

This allows more space between weather (example: show weather every 5 clips).


Nginx Notes (www.amigaz.org)

Key lesson learned: do NOT use

^~

on the

/prevue/

location if you want regex PHP blocks to work.

Working pattern:

# PHP for /prevue/api/*.php
location ~ ^/prevue/api/.*\.php$ {
    client_max_body_size 250m;

    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

# Prevue static
location /prevue/ {
    client_max_body_size 250m;
    index index.html;
    try_files $uri $uri/ =404;
}

Upload sizing:


TODO / Next Steps


Files / Structure

/var/www/html/amigaz/prevue/
├─ player/
│  ├─ index.html
│  ├─ player.js
│  └─ player.css
├─ editor/
│  ├─ index.html
│  ├─ editor.js
│  └─ editor.css
├─ api/
│  ├─ guide_get.php
│  ├─ guide_save.php
│  ├─ list_videos.php
│  └─ upload_video.php
├─ data/
│  └─ guide.json
└─ videos/
   └─ bumpers/