Wordpress - Give Author users the right to embed

The capability you are after is called unfiltered_html. Some options:

  1. Modify author capabilities in your theme functions.php. This is saved in the DB, so you can access a page, make sure it works then remove it from your functions.php file. A better option would be to run it on theme activation. See this page on WP Codex for options:

    function add_theme_caps() {
        // gets the author role
        $role = get_role( 'author' );
    
        // This only works, because it accesses the class instance.
        // would allow the author to edit others' posts for current theme only
        $role->add_cap( 'unfiltered_html' ); 
    }
    add_action( 'admin_init', 'add_theme_caps');
    
  2. Use a plugin that allows you to modify it using a UI, like User Role Editor.


This is a bad idea and you might as well just give those users "higher" roles as with the "unfiltered_html" permission it is not very hard to duplicate the admin authorization cookies and take control of the site.

What you should do is to teach them to use the built-in functionality of oEmbed, which should be enough to embed content from many sites in a simple way, by just putting the url of the content on a line of its own, but if that is not good enough, then you need to write shortcodes that will do the actual embed into the content.