Since the default state is metadata, there's no guarantee that the videos will reach anything beyond HAVE_CURRENT_DATA, but the canplay event is fired when reaching HAVE_FUTURE_DATA.