How to display a Drupal view in a CiviCRM tab
Extrapolating on Coleman's answer, you can get the json output required by creating a new Drupal page with hook_menu.  Here is the full code:

function mymodule_menu() {
  $items['civicrm-videos/%user/json'] = array(
    'access callback' =&gt; true,
    'page callback' =&gt; 'mymodule_output_my_view_json',
    'delivery callback' =&gt; 'drupal_json_output',
    'page arguments' =&gt; array(1)
  );
  return $items;
}

function mymodule_output_my_view_json($user) {
  civicrm_initialize();
  $content = views_embed_view('my_view', 'page', $user-&gt;uid);
  CRM_Core_Page_AJAX::returnJsonResponse($content);
}

function mymodule_civicrm_tabs(&amp;$tabs, $contactID) {

    $url = '/civicrm-videos/'. $contactID . '/json';
    $tabs[] = array( 'id'    =&gt; 'projectTab',
                     'url'   =&gt; $url,
                     'title' =&gt; 'Projects',
                     'weight' =&gt; 300,
                     'count' =&gt; 2 );
}