Lucky you, I reverse engineered a 14 year old program to convert its functions into PKHeX for Gen4 battle video ripping
See attached Uxie (assumed Platinum Acuity Cavern, since Version & Location aren't saved in battle videos), along with all 12 unfixed participating Pokémon.
Other small things like Met Date, Ribbons, and Contest Stats are also not stored in battle videos, so you'll have to restore those however you see fit.
0480 - UXIE - B8F264593D2E.pk4dump.rar
// ripped from offset 0x27000 (extdata block 02)
var data = File.ReadAllBytes(@"D:\Kurt\Desktop\test.bv4");
var bv4 = new BattleVideo4();
bv4.Decrypt();
foreach (var pk in bv4.GetTeam(0))
File.WriteAllBytes(@$"E:\dump\0_{pk.FileName}", pk.DecryptedPartyData);
foreach (var pk in bv4.GetTeam(1))
File.WriteAllBytes(@$"E:\dump\1_{pk.FileName}", pk.DecryptedPartyData);
https://github.com/kwsch/PKHeX/commit/802974a42c91d209cc75c383b09402136ca8beea