Your code works fine for me as-is, assuming you actually have a video
post type, however there are a couple of things you can correct-
-
shortcodes should
return
their value, otherwise you will see shortcode content appear before any post content, not where you actually placed the shortcode. -
do_action('wp_insert_post', 'wp_insert_post');
is unnecessary,wp_insert_post
already does that action within the function, so you’re invoking it twice.