A chapter of the Move Weight Foundation

Self-sustaining site monitor

Automation Status

Last run: 2026-07-26T21:11:27+00:00. Mode: hourly. Overall status: attention.

Open raw status JSON News Videos Agenda packets Finance transcripts

Current Totals

522Meeting Manifest Count
512Meeting Transcripts
51Youtube Uploads
85Youtube Channel Pull
510Youtube Captions
520Official Video Records
75News Items
12News Sources
836Search Records
81Finance Transcripts
24Agenda Packets

Last Run Jobs

JobStatusTimeOutput
Discover agenda packets and build audit pagesok4.76s
output
agenda packet auto: discovered=24 rendered=24
Crawl official Miami Web TV videosok2.19s
output
Crawled 522 official Granicus videos
Merged manifest now has 522 meetings
Wrote /opt/miamiok-granicus-videos.json
Rebuild official/YouTube video APIfailed0.08s
output
line 293, in load
    return loads(fp.read(),
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Pull YouTube channel uploads from YouTube APIok2.07s
output
youtube feed build: pulled=85 playlist=UUPEzVd4eQtJyVtOMt327PVA wrote=/var/www/exposemiamiok/html/youtube.html
Rebuild public videos pagefailed0.16s
output
aw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "/opt/youtube_gallery.py", line 180, in <module>
    main()
  File "/opt/youtube_gallery.py", line 60, in main
    subprocess.run(["python3", "/opt/gen_videos_json.py"], check=True)
  File "/usr/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['python3', '/opt/gen_videos_json.py']' returned non-zero exit status 1.
Refresh local news RSS feedsok7.77s
output
wrote /var/www/exposemiamiok/html/data/local-news-feeds.json items=75 sources=12
Rebuild site search indexok4.49s
output
wrote /var/www/exposemiamiok/html/data/site-search-index.json records=836
Crime watch feed aggregatorok3.92s
output
 Joplin man sentenced to more than 16 years in prison on child porn charges — Joplin Globe
  [ 6] Large fentanyl stash found in Joplin drug arrests — Joplin Globe
  [ 5] Florida murder suspect spotted near Oklahoma mall last week arrested at Miami ho — Google News - Miami 
  [ 5] Inmate found unresponsive in Ottawa County jail; died in hospital - KOAM News No — Google News - Ottawa
  [ 5] Investigation underway after woman found dead in Ottawa County - FourStatesHomep — Google News - Ottawa
  [ 5] Shooting suspect pleas guilty to 2021 Ottawa County Murder - KOAM News Now — Google News - Ottawa
Normalize menu and logo shellok0.77s
output
full menu updated checked=761 changed=35 version=20260601-unified-menu-agenda6

Schedule

Hourly: agenda packets, official videos, video page, RSS news, search, menu repair.

Daily: hourly jobs plus meeting attachment refresh, meetings index rebuild, YouTube transcript/API verification, video/search/menu refresh. The upload/caption batch runs from the dedicated 2:00 AM uploader.

Weekly: daily jobs plus City and Ottawa County finance downloads, finance transcript rebuild, audit-lead refresh, search/menu refresh.