An easy to use script / plugin for mpv to annotate videos with tags while you watch them.
Initially created to allow non-technical individuals to help build datasets which could be used to train machine learning models. It's been open sourced as it could potentially have many more uses.
Click here to see a demo of Serkio Tagger displaying all the tags in a video while you watch it.
Movie buffs, celeb fans, trivia lovers, vloggers and video producers, marketers, journalists, researchers and machine learning enthusiasts.
serkio-tagger.lua
into ~/.config/mpv/scripts
(%appdata%\mpv\scripts
on Windows). Alternatively, you can use the --script serkio-tagger.lua
option each time you run mpv.Ctrl+t
to enable Serkio Tagger.Click here for more information on mpv scripts.
To see how existing tags are displayed, run the following command within this repository.
$ mpv --script=serkio-tagger.lua demo-video/Adventure-Time-intro.mkv
Then enable Serkio Tagger by pressing Ctrl+t
within mpv, and finally press v
to view all current tags.
Tags consist of a name
, start time
and an end time
. You can create as many tags as you like.
Let's say you have a 70 second video-clip and a dog walks into the video around 10 seconds in and then walks off at 40 seconds:
00:00 01:10 +--------------------------------------------------------------------------------------------------+ | | dog enters dog leaves
mpv --script=serkio-tagger.lua dog-video.mp4
ctrl+t
.dog
tag by pressing t
, then typing dog and pressing Enter
(the tag is created if it doesn't exist).m
to mark the start time
of a tag, then press m
again to mark the end time
of a tag.You can press m
as many times as you like, so if the dog kept reappearing, you can tag every instance of it.
Tags will be saved with a file named after the video filename (in the same directory). For example: dog-video.mp4
tags will be saved in dog-video.json
.
Tags are saved in the following JSON format with start
and end
times being saved in milliseconds:
{ "name": "dog-video.mp4", "filename": "dog-video.mp4", "duration": "00:01:10.011", "tags": { "dog": [ [ 10031, 40310 ], [ 50032, 90783 ] ], "table": [ [ 1032, 42030 ] } }
With this example we can see:
dog
appears twice in the video (00:10 to 00:40, and again between 00:50 and 01:30).table
appears once in the video (00:01 to 00:42).heads up display
t select an active tag, creating it if it doesn't already exist m mark the start time
on first press and the end time
on second press (uses the active tag) d delete the tag you're within (i.e. it's the active tag and the timeline position contains that tag)
space
) and stepping through it frame-by-frame (,
and .
) makes it easier to precisely tag frames (additionally, holding down ,
or .
skips through frames faster).Install busted and run:
$ busted serkio-tagger-tests.lua
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4