Broadcast reports

Modified on Mon, 12 Oct at 9:27 PM

Broadcast Reports

Modified on Mon, Oct 12 at 9:23 AM

Broadcast reports are archived every month, with one JSON file per month containing the playback logs of all players. Historical logs older than one month can be retrieved from S3 and provided to the customer upon simple request.

Wavespark Logs

Types of logs and content reported by the players, filtering and export of the broadcast history, and archived logs.

log_type values

Three types of logs are currently produced by the players.

log_typeContent
diffusionEverything the player broadcasts: current playback, fallback, no playback ("Broadcast" filter in Wavespark)
projectProject change published from Wavespark to the player
systemOnly date/time, time zone, and NTP server changes

content_type values

Announcements inserted between tracks have the content_type spot, which makes it possible to distinguish them and exclude them from reporting.

log_typecontent_typeMeaningFilter in Wavespark
diffusionmusicMusic track played (title, artist, album, duration, ISRC if available)Broadcast > Music Programs > Tracks
diffusionradioWebradio played (stream name and URL)Broadcast > Music Programs > Webradios
diffusionspotAdvertising program: announcements and messages inserted between tracksBroadcast > Advert Programs
diffusioneventScenario-type program, music only (no announcements)Broadcast > Scenario
diffusionidleMoment when the player is not broadcasting anythingBroadcast > No playback
diffusionfallbackBackup playlist played when the webradio is unavailableBroadcast (Warning) > Music Programs > Webradios
projectswapProject change (project name and version)Project
systemdateTimeDate/time, time zone, or NTP server change (before/after values)System

Log examples

Every log has the same structure: a log_type, a creation date in UTC, the player's time zone, and a content block whose content_type indicates the nature of the content. The values below are examples.

Music track playback (music)

{
  "log_type": "diffusion",
  "created_time": "2025-08-31T18:48:51.000000Z",
  "timezone": "Europe/Paris",
  "content": {
    "content_id": "0456f7ab-4bce-447b-bd4f-1303449df861",
    "content_type": "music",
    "task_title": "Programme musical journée",
    "criticity": "info",
    "content_details": {
      "title": "Resistance",
      "artist": "Muse",
      "album": "The Resistance",
      "duration": "5:46"
    }
  }
}

Announcement playback (spot)

An announcement inserted between two tracks is reported with content_type: "spot"; this is the field that allows you to exclude it.

{
  "log_type": "diffusion",
  "created_time": "2025-08-31T18:54:37.000000Z",
  "timezone": "Europe/Paris",
  "content": {
    "content_id": "7c1e2a90-3f4b-4d8e-9a61-5b2c8d0e4f13",
    "content_type": "spot",
    "task_title": "Annonces magasin",
    "criticity": "info",
    "content_details": {
      "title": "Promo rentrée",
      "duration": "0:30"
    }
  }
}

Webradio playback (radio)

{
  "log_type": "diffusion",
  "created_time": "2025-08-30T20:16:33.000000Z",
  "timezone": "Europe/Paris",
  "content": {
    "content_id": "e2d8e351-84fb-4fc9-83b4-2b14bbcc2fd4",
    "content_type": "radio",
    "task_title": "radio",
    "criticity": "info",
    "content_details": {
      "title": "RFM",
      "url": "https://rfm.lmn.fm/rfm.mp3"
    }
  }
}

Project change (project / swap)

{
  "log_type": "project",
  "created_time": "2025-10-06T09:12:40.000000Z",
  "timezone": "Europe/Paris",
  "content": {
    "content_id": "1842",
    "content_type": "swap",
    "criticity": "info",
    "content_details": {
      "title": "Projet Magasin Paris - V3"
    }
  }
}

Date/time change (system / dateTime)

The log keeps the configuration before (old) and after (new) the change.

{
  "log_type": "system",
  "created_time": "2025-10-07T12:17:16.507Z",
  "timezone": "Europe/Berlin",
  "content": {
    "content_type": "dateTime",
    "criticity": "info",
    "content_details": {
      "old": {
        "auto": true,
        "servers": ["0.pool.ntp.org", "1.pool.ntp.org", "2.pool.ntp.org"],
        "timezone": "Europe/Berlin"
      },
      "new": {
        "auto": true,
        "servers": ["0.pool.ntp.org", "1.pool.ntp.org"],
        "timezone": "Europe/Berlin"
      }
    }
  }
}

Filtering and exporting music without announcements

The CSV export reflects exactly the filters applied in the player's Logs view. To get only the music that was played:

  1. In Wavespark, open the player settings, then the Logs view.
  2. Open Filters and choose the Broadcast type.
  3. Check Music Programs (Tracks and Webradios) and Scenario, and uncheck Advert Programs and No playback.
  4. Choose the period and time zone (Player by default, Local, or UTC), then click Apply.
  5. Click Export to download the filtered CSV.

Archived logs (broadcast history)

The entire broadcast history (Proof of Play) is stored in cloud storage (S3), archived by month. Logs older than one month are no longer in Wavespark, but can be extracted from S3 and provided to the customer upon request.

File organization

  • One JSON file per month, named MM-YYYY.json (e.g. 10-2025.json for October 2025).
  • Each file contains the logs of all players for the month, of all types (diffusion, project, system).
  • The file is a JSON array: one object per log, sorted by ascending id.

Structure of an archived log

An archived log has the same content as a Wavespark log, plus the identification of the player and the company.

FieldDescriptionExample
idUnique log identifier2283731
device_idInternal player identifier1153
device_snPlayer serial number063236
company_idCompany identifier158
log_typediffusion, project, or systemdiffusion
created_timeLog date and time, in UTC2025-10-01T00:57:47.851000Z
timezonePlayer time zone (may be null)Europe/Paris
contentLog details: content_type, criticity, content_details, etc.see examples above

Real example extracted from the 10-2025.json file:

{
  {
    "id": 2283731,
    "device_id": 1153,
    "device_sn": "063236",
    "company_id": 158,
    "log_type": "diffusion",
    "created_time": "2025-10-01T00:57:47.851000Z",
    "timezone": "Europe/Paris",
    "content": {
        "content_id": "3fc8e99b-d4df-4570-856a-9e282b5bac05",
        "content_type": "music",
        "task_title": "08",
        "criticity": "info",
        "content_details": {
            "title": "01239 - Kelly Reid",
            "artist": "Hardkandy",
            "album": "LotB1300",
            "duration": "5:35"
        }
    }
},
{
    "id": 2409964,
    "device_id": 1697,
    "device_sn": "200065",
    "company_id": 158,
    "log_type": "diffusion",
    "created_time": "2025-10-27T13:32:13.747000Z",
    "timezone": "Africa/Casablanca",
    "content": {
        "content_id": "29709fba-aa44-45e5-a630-e04e879ad551",
        "content_type": "radio",
        "task_title": "vrai radio",
        "criticity": "info",
        "content_details": {
            "title": "Skyrock",
            "url": "https://icecast.skyrock.net/s/natio_mp3_128k?tvr_name=tunein16&tvr_section1=128mp3"
        }
    }
}
}
Translation notes: technical field values (log_type: "diffusion", "spot", etc.) and sample content ("Annonces magasin", "Promo rentrée", "Projet Magasin Paris - V3") were kept in French because they are actual values that appear verbatim in the logs. Page interface elements (feedback form, related articles) were omitted.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article