> But this part is not executing →
> 
>     $args = array(
>         'category_name' => $taxonomy,
>         'post_type' => 'video',
>         'posts_per_page' => -1,

It probably is. It's just wrong.

If you want to query posts by terms in a custom taxonomy you need to add a taxonomy query:

    $args = array(
        'post_type'      => 'video',
        'posts_per_page' => -1,
        'tax_query'      => array(
            array(
                'taxonomy' => 'vcategory',
                'field'    => 'slug',
                'terms'    => $taxonomy,
            )
        )
    );

This is explained, with examples, in [the documentation][1]. I'm going to implore you again to please read documentation.

Also, you're using the wrong `$_POST` field. In `wp_dropdown_categories()` you've given the field the name `categoryfilter`, but are trying to get the value for `taxonomy`. You need to set `$taxonomy` like this:

    $taxonomy = $_POST['categoryfilter];

*Also*, you shouldn't be using `POST` for this type of request. You should be using `GET`:

>GET is used to request data from a specified resource.
>
>POST is used to send data to a server to create/update a resource.
>
> — https://www.w3schools.com/tags/ref_httpmethods.asp

You're doing the first thing.

  [1]: https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters