Text Indexer
One text-reading pass: brings TextStore in line with the library, newest first: photos, then videos. A video is read frame by frame like Smart Search reads it (Video Detail size), but only lines that changed are read again (TextReader.readChanged): captions stay up for many frames. Each video keeps its distinct lines once. The last pass of the background job, under the same rules (charging for the backlog, a few new items otherwise, stops when warm).
Functions
Link copied to clipboard
Reads at most limit photos and videos.