Step 1: Shot segmentation.
For each movie \(m\) , we run a shot segmentation algorithm to split that title into \(n_m\)  shots. Let \(S^m = \lbrace s^m_i \rbrace _{i=1}^{n_m}\)  be the set of shots where \(s^m_i\)  corresponds to the \(i\) -th shot of the \(m\) -th movie. Shot \(s^m_i\)  consists of an ordered set of frames \(F^m_i = \lbrace f_{(i,j)}^m\rbrace _{j=1}^{l^m_i}\) , where \(f_{(i,j)}^m\)  is the j-th frame of \(s^m_i\) , and \(l^m_i\)  is the number of frames in \(s^m_i\) . We use a custom shot segmentation algorithm but similar results can by achieved with PySceneDetect [1]} or TransNetV2 [2]}.
