ISSA workshop 2

Northwest Film Archive First pass

This interactive analysis page was produced with Claude coding assistant. All content has been checked by a human reviewer. Errors or inconsistencies can be reported to issa@kcl.ac.uk

Data to drive this page is generated by make_ws2_data.py. It is re-run at each stage; the page is not edited between runs.

—
catalogue records in two batches of
—
videos processed so far (of )
—
programmes proposed, from detected separators
1 · The data NWFA shared

Two batches of 200, at opposite ends of the cataloguing spectrum

NWFA shared 400 video files in two deliberately different batches. One is a broad, richly catalogued cross-section of the main collection. The other is a near-undescribed television archive whose only content clue is known to be unreliable.

Channel M — files

Metadata columns
populated, empty of
Descriptive fields
of entirely empty
Only content clue
label transcription, median words
Carrier
—
Digitised
→ —

Film & Video — files

Metadata columns
populated ( complete) of
Synopsis
200 of 200, median words
Index terms
200 of 200, median terms
Span
–, hours total
Mix
—
The asymmetry is also a processing cost. The delivered Film & Video files measure — hours in total, against hours in the catalogue. Channel M carries no durations in its metadata at all — but its delivered files measure — hours, — the Film & Video total, with none of the reference metadata. That shapes both the compute budget and where human attention is worth spending.

Hierarchical organisation

Mapping onto the design of FrameSense, we organise the collections hierarchically: archive → collection → video file → programme → segment. The bands below show what the catalogue establishes on its own at each level, before any processing.

NWFA — whole archive Channel M — verified Channel M — assumed Film & Video — verified Film & Video — assumed ⚠ Needs human check Not yet determined

Band width = share of the 400 records. The working sample row shows one square per video in the run (solid = annotated by hand, hatched = not yet); at full scale it shows only the annotated ones and says how many they are. Hover for detail. Note that below video file the catalogue stops being able to help: Channel M has a label it cannot vouch for, and Film & Video has a prose synopsis with no timecodes in it.

2 · The labels

A printing error broke the link between tape labels and tape content. Can machine description measure it? sample of 5

NWFA has flagged that a printing error on the barcodes means the label information in the Heritage 2022 metadata does not match up with the file content.

The label is the only content description these 200 files have. If it cannot be trusted, the files are effectively unreachable: you cannot search them, select them for a compilation, or answer an enquiry about them. Before any of the segmentation work matters, this is the practical problem.

A description generated from the pictures and sound does not depend on the barcode at all. That is what makes the label testable: score each tape's description against the archive's own label pool, and the fit — or its absence — is a per-tape result that adds up to a measurement across the batch.

How the match is scored

For each processed Channel M tape, the pipeline's description of it — written from the pictures and sound; the pipeline never saw the label — is embedded together with the archive's full H22 label list (around 3,000 labels, not just this batch's 200) using a sentence-embedding model (all-MiniLM-L6-v2). The five nearest labels are kept, and two numbers come out per tape: how similar the best candidate is (%match1), and how far it clears the runner-up (simDif). The spreadsheet colours each row from those two:

The tapes, scored

Best candidate from the H22 label pool per tape, with the two scores; the tapes NWFA has judged are shown with their verdict
green — confident, unambiguous label
yellow — plausible, ambiguous
blank — no candidate clears the bar
FileBest candidate labelSimilarityMarginScoredNWFA verdict

—

The five tapes NWFA has judged independently check the heuristic. None of the four whose labels do not match the content — all five annotators said no on each — scores green: two find no candidate at all, and two top out on a pool of near-identical "Channel M News" labels, tied with zero margin. The contested tape does score green: its best candidate is a 4 Manchester label — the same programme its own spine label names, just not that exact one.

Because the candidates come from the whole H22 label list rather than this batch's 200 labels, a confident match can point at a label that is currently sitting on a different tape. That is the re-pairing opportunity: instead of correcting labels one at a time, the machine descriptions could be used to match labels to files across the batch.

3 · The two tasks

Outer segmentation finds the programmes in a video file; inner segmentation divides a programme into parts

ArchiveNWFA
CollectionChannel M · Film & Video
Video file processed
Programme proposed
Segment proposed
Outer segmentationGiven a video file, find each programme in it: where it starts and where it ends.
Inner segmentationGiven a programme, divide it into parts, chapters, sections — chunks of some kind.

What we have to compare against, per task

TaskChannel MFilm & Video
Outer segmentation Nothing. No duration, no programme count, no content description. The label sometimes names more than one item, but it cannot be relied on to name even one correctly. An assumption. One catalogue record per film, so the working assumption is one file = one programme — but compilation reels break it, and our sample already contains one that does.
Inner segmentation Nothing. Prose only. The synopsis describes the film shot by shot in words at the median, with no timecodes anywhere, so it can support a judgement about what the parts are but not where they are.
Descriptive metadata Nothing beyond the label. Strong. Year, colour, sound, duration, producer, place and index terms on essentially every record.
The rushes problem. Most of Channel M is rushes and raw footage rather than transmitted programmes, and "programme" may be the wrong unit for it. One sampled tape is a reporter recording the same piece-to-camera over and over; the pipeline described it as a comic sketch about a reporter endlessly re-running his report, which is a fair account of what is on the screen. Whether NWFA wants the story (takes collapsed) or the take (takes separated) changes the output completely.
4 · What we processed

videos went through the pipeline

Separators are detected first, the file is cut on them, and each resulting clip is then described on its own.

Video fileone delivered file per tape or reel
→
Audio chainextract sound → voice activity detection → transcribe (Canary-1b-v2) → subtitles
→
Separator detectionVLM looks for colour bars, blank screen, production cards, countdown leaders
→
Cut on separatorsfile split into clips
→
Describe each clip, twicepass 1 (misc3): the description fields · pass 2 (secondpass1): programme flag, bands, environment
→
One row per programme13 fields + segment list

Model

ModelRedHatAI/Qwen3.8-27B-INT4
TypeOpen-weights vision-language model, quantised build
HostingKCL CREATE HPC cluster — archive video never leaves KCL infrastructure
Settingsseed 1234 · reasoning_effort xhigh · video_tokens 64k · max_tokens 30k · max_fps 1 (clips) / 2 (separators)
Transcriptionnvidia/canary-1b-v2
Promptmisc3 (pass 1) · secondpass1 (pass 2)
The clip prompt, pass 1, verbatim (misc3)
The attached video is a single programme from a very diverse collection at a national screen archive.
Sometimes a professional programme can contain raw unedited rushes with outtakes or retakes.
Returns a json dictionary with the following keys:
* year (the year the programme was made, only if specified and certain),
* title (the title of the programme, only if specified and certain),
* places (unique toponyms where the programme takes place; only if certain and mentioned on a sign or in subtitles),
* segments (list of main chapters or major segments, for each a `title` and a `starting` timecode),
* summary (one very concise sentence summarising the content of the programme),
* synopsis (short paragraph summarising the content of the programme; don't mention possible visual transitions at the start),
* colour (either: black-and-white or colour or sepia or colour-and-black-and-white),
* category (one or more values from: Travel and transportation; Home and family; Sport and leisure;
  Landscape and buildings; Industry and occupations; Wartime; Culture and traditions;
  Health, Welfare and Education; No idea),
* category2 (one or more values from: Cinema Newsreel; Local Cinema Topicals; Promotional/Advertising;
  Educational/Training; Scientific; Factual Record; Fiction; Home Movies; Special Interest; Amateur),
* keywords (10 key topical or thematic tags for this programme; avoid overly specific tags like
  place names, people or objects),
* credits (if specified; use a dictionary with keys for roles and name(s) for values).
The clip prompt, pass 2, verbatim (secondpass1)
The attached video is a single programme from a very diverse collection at a national screen archive.
Sometimes a professional programme can contain raw unedited rushes with outtakes or retakes.
Returns a valid JSON dictionary with the following keys:
* programme ('true' if this is an actual programme with meaningful content that can be broadcast;
  'false' if this is mostly visual markers like blank screen, color bars, white noise),
* bands (a list of music bands featuring in this programme, for each one its `name` and a list of
  `activities` such as 'music video', 'studio performance', 'concert performance', 'interview', 'other';
  [] if no band in the programme),
* environment (in two words maximum, the primary type of environment the programme takes place in,
  such as `forest`, `street`, `studio`, `school`)
The separator prompt, verbatim (sep1)
List every full-screen separator between distinct programmes. A visual separator usually looks like
SMPTE color bars, blank screen, production card, countdown leaders, static or white noise. It is
always totally distinct in style from surrounding programmes, usually non-photographic and never
intended for public audience. Compare with programmes on either side of the separator to confirm
this. Return an empty list if the input doesn't contain any definite separator. Other screens within
a programme like ending credits or chapter titles should not be reported as programme separators but
may help finding/confirming nearby separators.

Fields targeted per programme. Pass 1 (misc3):

titleyearplacecolourtypessummarysynopsissegmentscreditskeywords

Pass 2 (secondpass1):

programmebandsenvironment
5 · Results: outer segmentation

The separator detector works

Across files the pipeline detected separators and proposed programmes. The detection itself looks sound. The step that turns separators into clips is producing programmes that are not programmes.

Programmes proposed per file

By batch

Film & Video files mostly resolve to a single programme — 182 of 198 — as the catalogue assumption predicts; the 16 that don't are compilation reels, correctly split into two to sixteen programmes. Channel M is where the structure lives: over a third of the tapes hold more than one programme, and the most complex — a Channel 4 Manchester music magazine — fragments into .

Detected separator duration

Seconds, all files

Median s, range –s. of files open with a separator, which is what you would expect from tape leader.

Share of each file covered by proposed programmes

The remainder is separator material

Median , lowest ; files fall below 95%. High coverage is good news for outer segmentation — very little of each file is being thrown away — but it says nothing about whether the cuts fall in the right places.

Two files in full

Proposed programmes in colour, detected separators in amber, suspected non-content clips hatched. These are the most structured file in each batch.

Hover any block for its timecode. The Channel M tape () shows the characteristic shape of this collection: a short lead-in, four long programmes — the body of a Channel 4 Manchester music magazine — then a tail of short idents and promos in which three non-content slivers sit. The Film & Video reel () is a genuine compilation: sixteen short items on one reel, each cleanly separated.

Finding: separator residue is being emitted as programmes. of the proposed programmes () contain no programme content — colour bars, blank screen, a grey frame. Median duration seconds. The detector is not at fault: it found the bars correctly. The problem is that when two separators sit close together, the sliver between them is emitted as a clip and then dutifully described — the most complex tape, the Channel 4 Manchester magazine, carries three such slivers, five to six seconds each, each sitting between two detected separators.

The second pass's programme flag now marks most of these itself: programmes are flagged false — of them inside the heuristic's list, beyond it (plus with no second-pass data). The flag is the primary signal; the duration rule remains a cheap safety net, since short clips bounded by separators on both sides — of the here — can be dropped immediately even without the model.

Because the clip prompt asks for types unconditionally, the model still assigns a genre to colour bars: —. Flagging rather than deleting keeps those rows auditable instead of silently disappearing from the index.
6 · Results: description and inner segments

Descriptions come back complete; titles, years and credits mostly do not

Machine fields with a value

Share of proposed programmes, by batch

Summary, synopsis, keywords, colour, types and environment come back for essentially every programme — the model will always write prose (environment names the setting in two words or fewer). Title, year and credits only appear when something on screen states them, and bands only when a band is in the picture. Note the contrast with section 1: on Channel M these are the only values that exist for any of these fields.

Inner segments per programme

Count of segment items

segment items in total; programmes came back with none, which maps closely onto the non-content clips. Timecode style is inconsistent — — — and needs normalising before the segments can be used for navigation.

One confabulation in the ten-file working sample — legible, and fixed by the prompt. A Film & Video amateur reel, titled in the catalogue "Playing bridge at the Calf's Head Hotel; trip to Knaresborough and Brimham Rocks" — both inland (Worston, Lancashire; the Yorkshire Dales) — came back in the first run placed in "Cornwall": the catalogue's Brimham Rocks boulders had become "the dramatic wind-carved stacks and boulders of the Calf's Head coastline". The model appears to have mapped the hotel's sign onto the famous Cornish headland of the same name. It is wrong in a way an archivist spots instantly, and in a way the catalogue would have prevented if the pipeline had been given it. The re-pointed places prompt — a toponym only if certain, and seen on a sign or in subtitles — has removed it since: in the full run the same footage comes back as "Calf's Head", environment "outdoor countryside", with no coastline.
7 · Vocabularies

The machine now works in NWFA's own vocabulary

For the full run the prompt asks directly for NWFA's two controlled lists — the nine-term category and the ten-term category2 — so the output arrives in the archive's own language rather than as a parallel description. The question has changed from "do the two vocabularies touch?" to "how well does the machine's use of them line up with the catalogue's?"

Machine types

NWFA's two lists, as asked by the prompt — across all proposed programmes

One field, two axes: category (subject) and category2 (provenance — how and why the film was made). Eighteen of the nineteen terms came back; Scientific never did.

NWFA category

Nine terms, multi-valued, across the 200 Film & Video records

Channel M was never catalogued, so its programmes have no catalogue terms to agree with — the machine's terms are all they have.

Subject: of films agree. On of the Film & Video files that carry a catalogue category, the machine's terms overlap it — most often on Sport and leisure, Culture and traditions and Travel. Term for term the two agree exactly on of the ; on the machine covers everything the catalogue says, usually with additions — it is generous, not precise. The lopsided term is Culture and traditions, added by the machine on 39 files against 7 the other way round.

Provenance: same concept, different labels

The second list — category2, the Professional and Amateur sub-categories — is where the mapping gets harder: on raw labels only of films share a sub-category with the catalogue. Part of the gap is a naming difference: the catalogue files its amateur material under Special Interest ( films) where the machine says Amateur or Home Movies ( films), and reading those labels as the same term lifts the overlap to . The rest is genuine disagreement about which film gets which sub-category — both sides reach for Factual Record and Local Cinema Topicals a great deal, on different films.

Where the mapping stands

What the full-run prompt now asks for, and how each NWFA axis performed against the catalogue.

NWFA axisTermsWhat the prompt now asks forHow it performed
Subject
category
9 terms: Sport and leisure, Wartime, Culture and traditions, Industry and occupations, Travel and transportation, Landscape and buildings, Health/Welfare/Education, Home and family, No ideaAsked for directly, multi-valued (pass 1) of films share ≥1 term; exact on ; the machine is generous — it covers all catalogue terms on
Provenance
category2
10 terms: Factual Record, Local Cinema Topicals, Promotional/Advertising, Cinema Newsreel, Educational/Training, Scientific, Fiction, Home Movies, Special Interest, AmateurAsked for directly (pass 1) of on raw labels; once Special Interest is read as Amateur/Home Movies
Professional / Amateur
(catalogue binary)
Professional / AmateurNot asked as a binary — signalled by category2 (Amateur, Home Movies)Could be made an explicit field if NWFA wants it; the visual signal is strong
Form
(no NWFA equivalent)
The old 17-term machine list (documentary, promotional, animation…)Dropped in this run — types is now NWFA's two listsThe free keywords (10 tags) still carry form and detail
8 · Data quality

The duration question

Catalogue running time against delivered file duration

Sampled Film & Video films
FileGaugeSoundCatalogueFileFile ÷ catalogue

The catalogue's own footage-to-runtime relation implies different projection speeds for different gauges — — — which is consistent with silent material timed at sound speed but transferred speed-corrected. If that is the explanation, the rule is knowable and the check becomes automatic. Duration is otherwise the cheapest consistency check available at 400-scale.

9 · Human truth

NWFA human annotation task pending

Human annotation is the scarce resource in this project. The two batches need opposite things.

FieldAsked ofWhy
Nothing returned yet. This section fills in automatically once the validation sample comes back: agreement per field, boundary placement against the proposed programmes, and the label-match verdicts aggregated across the batch. Expected: videos.
10 · Findings

What we now know, what we could know with more development, and what needs a human first

What we know

  • Machine description can be compared against the Channel M labels without depending on the barcode, so the mismatch is measurable.
  • Separator detection is working. separators across files, median s, and tape leader is being found where you would expect it.
  • Coverage is high — median of each file is accounted for by proposed programmes.
  • Film & Video files mostly resolve to one programme, and the one compilation reel in the sample was correctly split into four.
  • Prose fields are always returned; evidential fields — title, year, credits — are returned only when stated on screen.

What we could know

  • Whether machine output can be filed. Re-pointing the prompt at NWFA's category, Professional/Amateur and sub-category vocabularies is a prompt change, not a model change.
  • Whether the duration discrepancy is a knowable transfer-speed rule, which would turn it into an automatic check.
  • Whether the music content — early TV performances by named bands — supports performer identification, which is a different task with different risks.

What needs a human first

  • What counts as a programme in rushes.
  • The label-match verdicts. Only an archivist can assign them, and they are the headline measurement.
  • Which vocabularies the machine should target, and whether machine terms sit in the same FileMaker fields as human ones or alongside them.
  • The transfer-speed rule behind the duration disagreement.
  • The tolerance for confabulation, which sets how aggressively the prompt can be pushed.
11 · For discussion

Six questions for the workshop.

What is a programme in a rushes tape?

Most of Channel M is rushes, and the machine is already showing us the problem: one sampled tape is a reporter re-recording the same piece-to-camera repeatedly, described by the pipeline as a comic sketch about exactly that. It is not wrong about what it sees.

Is the unit NWFA wants the story, with all takes collapsed, or the take, separated — which is what an editor reusing footage would want?

Decision: the unit of outer segmentation, before scale-up.

Is the barcode error systematic or random?

If the printing error is an offset — labels shifted by one, or one crate's labels transposed with another's — machine descriptions across all 200 files could let us re-pair labels to files rather than correcting them one at a time.

Five tapes is too small to tell. Does the error have a shape Nick already knows about? The batch has two crates, which is the obvious first thing to test.

Decision: whether re-pairing is in scope for the 400-run.

Which vocabularies should the machine target?

NWFA has three: category (nine subject terms), the Professional/Amateur split with its sub-categories, and free-text index terms at terms per record. The current prompt points at none of them.

We can target one or two well, not all three at once. And in FileMaker, do machine terms share fields with human ones or sit alongside them?

Decision: the target vocabulary and the field layout for ingest.

What should the validation sample cover?

The two batches need opposite things. For Film & Video, year, colour, sound and title are already catalogued; asking again spends the budget on nothing. For Channel M the catalogue is empty and one tick-box per tape produces the project's headline metric.

Proposal: label-match, programme count and timecodes for Channel M; programme count, timecodes and a verdict on the machine text for Film & Video. How many tapes is that in practice?

Decision: the annotation template and its size.

Catalogue running time or file duration?

of sampled films disagree, by factors up to —. The catalogue's footage-to-runtime relation implies different projection speeds by gauge, consistent with silent material timed at sound speed but transferred speed-corrected.

Nick will likely settle this in a sentence. It matters because duration is otherwise the cheapest automatic consistency check at 400-scale.

Decision: which value is authoritative, and the conversion rule.

What does a usable output look like on your side?

What form does this need to take to be ingestible — a FileMaker import, a spreadsheet, something in the ISSA Inspector? And what would NWFA want to be able to show internally in November?

This shapes what gets built between now and the workshop, so it is worth the time even if it runs long.

Decision: the deliverable format for the workshop.

Other questions