You are on the right track. A table for the video records and one or more tables to manage the compilations. If you might put the same video record in more than one compilation, you'll want two more tables. If you only put a video in one and only one compilation, you only need the one table instead of two more.
Assuming that a video can be in more than one compilation...
Video::__pkVideoID = Video_Compilation::_fkVideoID
Compilations::__pkCompilationID = Video_Compilation::_fkCompilationID
Building a compilation would be a case of creating a new record in Compilation followed by creating a series of records in Video_Compilation that each link a specific video to the newly created compilation.