Esempi
Gli esempi usano curl e la variabile $API_TOKEN. L’URL di base è https://cloud.viewneo.com/api/public/v1.
Caricare un file
Sezione intitolata “Caricare un file”I file non passano per l’API stessa, ma vanno direttamente nello storage – tramite un indirizzo prefirmato. Così anche i video grandi si caricano velocemente.
# 1. avviare il caricamentocurl https://cloud.viewneo.com/api/public/v1/media/uploads -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"filename":"speisekarte.jpg","mimeType":"image/jpeg","fileSize":'"$(wc -c < speisekarte.jpg)"'}'
# 2. inviare il file a upload.url dalla rispostacurl -X PUT "$UPLOAD_URL" -H "Content-Type: image/jpeg" --data-binary @speisekarte.jpg
# 3. concludere, con il checksum MD5curl https://cloud.viewneo.com/api/public/v1/media/uploads/$MEDIA_ID/complete -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"md5":"'"$(openssl md5 -r speisekarte.jpg | cut -d' ' -f1)"'"}'I file grandi arrivano come multipart: la risposta del passo 1 indica allora la dimensione delle parti; gli indirizzi delle parti li ottieni con POST /media/uploads/{id}/parts.
Dopo di che il contenuto è pronto. I video vengono preparati in background per la riproduzione. Alcuni formati vengono convertiti e sostituiscono così il contenuto caricato: TIFF, BMP e HEIC diventano JPEG (o PNG in caso di trasparenza), documenti come PDF o PowerPoint diventano un’immagine per pagina in una nuova cartella. I nuovi ID li trovi con GET /media?folderId=….
Portare un contenuto sullo schermo
Sezione intitolata “Portare un contenuto sullo schermo”# inserire il contenuto in una playlist – nei giorni feriali all'ora di pranzocurl https://cloud.viewneo.com/api/public/v1/playlists/$PLAYLIST_ID/entries \ -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" \ -d '{"type":"media","mediaId":"'"$MEDIA_ID"'","durationSeconds":15, "schedule":{"rule":"scheduled","weekdays":["mon","tue","wed","thu","fri"],"startTime":"11:30","endTime":"14:30"}}'
# assegnare la playlist a un dispositivo (per un gruppo funziona allo stesso modo con /device-groups)curl -X PATCH https://cloud.viewneo.com/api/public/v1/devices/$DEVICE_ID \ -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" \ -d '{"playlistId":"'"$PLAYLIST_ID"'"}'Mostrare i dati del tuo sistema
Sezione intitolata “Mostrare i dati del tuo sistema”Progetta una volta nel Designer un modello con segnaposto. Il tuo sistema ne crea un contenuto e lo aggiorna ogni volta che i dati cambiano:
# quali segnaposto ha il modello?curl https://cloud.viewneo.com/api/public/v1/templates/$TEMPLATE_ID -H "Authorization: Bearer $API_TOKEN"
# crearne un contenuto – il suo ID lo inserisci in una playlist come qualsiasi file multimedialecurl https://cloud.viewneo.com/api/public/v1/templates/$TEMPLATE_ID/contents \ -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" \ -d '{"name":"Mittagstisch","values":{"gericht":"Labskaus","preis":"12,50 €"}}'
# il giorno dopo modificare i valori – i dispositivi si aggiornano da solicurl -X PATCH https://cloud.viewneo.com/api/public/v1/template-contents/$CONTENT_ID \ -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" \ -d '{"values":{"gericht":"Fischfrikadelle","preis":"11,90 €"}}'I nomi dei segnaposto (qui gericht e preis) provengono dal tuo modello.
Allineare una playlist
Sezione intitolata “Allineare una playlist”Invia l’intero contenuto in una sola chiamata. Le voci che invii con il loro id restano, quelle nuove vengono create, tutte le altre rimosse:
curl -X PUT https://cloud.viewneo.com/api/public/v1/playlists/$PLAYLIST_ID/entries \ -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" \ -d '{"entries":[{"type":"media","mediaId":"'"$ANGEBOT_1"'"},{"type":"media","mediaId":"'"$ANGEBOT_2"'"}]}'Mettere in funzione un nuovo player
Sezione intitolata “Mettere in funzione un nuovo player”Avvia il player; mostra un codice di attivazione di sei caratteri. Attivalo in un gruppo di dispositivi – ogni dispositivo appartiene a un gruppo – e riproduce subito i contenuti del gruppo:
curl https://cloud.viewneo.com/api/public/v1/devices/activate \ -H "Authorization: Bearer $API_TOKEN" -H "Content-Type: application/json" \ -d '{"activationCode":"AB3XZ7","name":"Lobby Empfang","groupId":"'"$GROUP_ID"'"}'Ogni player ha bisogno di una licenza; le licenze non vengono mai aggiunte automaticamente. Senza una licenza libera l’API risponde con 409 LICENSE_LIMIT_REACHED.
Trovare i dispositivi offline
Sezione intitolata “Trovare i dispositivi offline”curl "https://cloud.viewneo.com/api/public/v1/devices?limit=100" -H "Authorization: Bearer $API_TOKEN" \ | jq '.data[] | select(.online == false) | {name, lastSeenAt}'Recuperare la prova di riproduzione di una giornata
Sezione intitolata “Recuperare la prova di riproduzione di una giornata”curl "https://cloud.viewneo.com/api/public/v1/reports/device-log/$DEVICE_ID?filter=playouts&from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z&limit=200" \ -H "Authorization: Bearer $API_TOKEN"Ripeti la chiamata con &cursor=<nextCursor> finché nextCursor è null. Per un intero mese di un contenuto in un colpo solo c’è l’esportazione CSV GET /reports/media/{id}/playout-details/export.