Public videos are rich in information, but difficult to search.
A video is not a spreadsheet. It is made up of frames, audio, metadata, descriptions and visual context. Valuable information may be visible or audible inside the video, but unless that information is extracted and structured, it remains difficult to discover.
Railway videos are a good example of this problem.
Rail enthusiasts often search for videos of specific locomotives, units, locations or services. They may have a historical connection to them, volunteer with them, or even own them. But unless the producer of a video includes those details in the title or description, that footage can be hard to find through normal search.
The useful data is spread across multiple places: the video title, description, visual frames, spoken audio, on-screen text, and the domain knowledge of the person watching. A four-character headcode, for example, can carry useful railway meaning, but only if you understand the context around it.
Searching inside video should be easier. Fishplate was built to explore that idea in the context of UK railway videos.
This is not a tiny pool of forgotten content. The railway videos indexed by Fishplate have collectively been viewed more than 250 million times, showing that there is already significant public demand for this material. The problem is not whether people watch railway videos; the problem is that much of the useful information inside those videos remains difficult to discover.
Fishplate
Fishplate is a UK-centric rail enthusiast website developed to expose the data hidden inside published railway videos.
Trainspotting videos can feature many locomotive numbers, locations, headcodes, operators and brand identities. It is often difficult for the video producer to list all of that information manually. It also depends on the producer knowing which details matter and wanting to expose them in the first place.
Fishplate was born from a simple idea: finding videos of specific trains should be easier.
If the system could identify the railway information hidden inside videos, it could help enthusiasts discover footage that would otherwise remain unseen. It could also support the creator community by creating new routes into older, niche, or less well-described videos.
To date, Fishplate has analysed more than 60,000 videos, representing over 250 million combined views. From those videos, it has processed more than 6.2 million sampled frames and discovered more than 7,500 locomotive identities.
Fishplate connects videos to locations, dates, locomotive numbers, operators, headcodes and other railway-specific entities. It also connects to Network Rail Open Data feeds, allowing video evidence to be compared with timing and movement data. This makes it possible to link multiple videos of the same train as it appears at different places along a route.
The system
Turning unstructured video into searchable data requires a multi-stage processing pipeline.
The process requires significant CPU and GPU resources, but it has been designed to avoid wasting compute. This matters because video processing is a volume problem: small inefficiencies become expensive when repeated across tens of thousands of videos.
Video acquisition is outside the scope of this case study. Videos may come from custom discovery tools, APIs, paid sources or direct uploads. The important starting point is that the system has access to a video file.
Once a video is acquired, the first stage is transcription. Fishplate uses Whisper to convert the audio track into text. Railway videos often contain more ambient noise than speech, but spoken comments can still include valuable information such as locomotive numbers, locations, operators, dates or headcodes.
After transcription, the video is passed to CPU workers. These workers extract frames from the video at variable intervals, based on the length and structure of the source file.
Those frames are then passed into a queue for separate GPU-based processing. Each frame is analysed in two main ways:
OCR — Optical character recognition is used to extract visible text from the frame. This may include station names, locomotive numbers, headcodes, platform signs, destination boards, captions, or text added by the video creator.
Logo and brand detection — A trained machine learning model searches for more than 60 current and historic railway brands, operators, liveries and logos. The model was trained on around 7,000 images, including negative examples to help reduce false matches.
Once transcription, OCR and visual detection have been completed, Fishplate combines the extracted data and begins turning it into structured information.
Building the searchable database
At this point, the video has been converted into a large amount of unstructured extracted data. The next step is to identify which parts of that data correspond to known railway entities.
Fishplate maintains reference data for locomotive numbers, headcodes, train stations, operators and other railway-specific values. Extracted signals from the video are matched against this reference data to identify possible entities.
This is important because many railway identifiers are short and ambiguous. A headcode is a four-character identifier used to describe a train movement, but not every four-character string found in a video is a headcode. Similarly, not every four, five or six-digit number is a locomotive or unit number.
By matching extracted signals against reference data, Fishplate reduces false positives and increases confidence in the entities attached to each video.
Because timestamps are preserved throughout the process, discovered entities can also be linked to specific points in the video. A locomotive number, station name, operator logo or spoken reference can be associated with the moment where it appears or is mentioned.
This turns the video from a single opaque media file into a set of structured, time-linked evidence.
The result
Fishplate has processed more than 60,000 railway videos and converted them into a structured, searchable dataset.
People looking for specific railway videos can now discover footage that may not have been visible through normal search, especially when the original uploader did not include detailed information in the title or description.
By supplementing video evidence with Network Rail Open Data, Fishplate can also establish relationships between separate videos of the same train movement. This allows a single journey to be reconstructed from multiple videos uploaded by different enthusiasts at different locations.
Although Fishplate is built around railway content, the underlying pattern applies more broadly: extract signals from unstructured media, match them against reference data, and turn the result into searchable, structured evidence.
Potential future applications could include archive discovery, public media monitoring, incident research, trend analysis and understanding how the public records and discusses the rail industry.
Learn more about Fishplate’s rail industry applications on the Rail Industry page.