(1) Labels are the ground truth you have for each frame or video. I would load it in the Dataset because you can pass the Dataset to DataLoader class and if you return both the input for your net and the ground truth for this input in Dataset’s __getitem__() method, it is easy:
for i, data in enumerate(dataloader):
    inputs, labels = data['frames'], data['gt']

(2) If you print the MyDataset you get a None? This seems weird. The __getitem__() method though is called when you index your object as following:
dataset = MyDataset(video_paths)
frames, labels = dataset[23] # here the method __getitem__() gets called with i = 23