Most of it runs on wpseo_head (hooked into wp_head). Turn on output buffering, make sure your post data is setup up, and execute it.
ob_start();
do_action("wpseo_head");
$yoast = ob_get_contents();
ob_end_clean();
WP SEO resets the global $wp_query back to its original state, ensuring that the plugin always generates the correct HTML output for the current visited post. So the above code to work manipulate that by setting $wp_query to your own query and setting $wp_query->is_singular = true. You'll also have to reset their singleton: WPSEO_Frontend::$instance = false so it's instantiated.