diff --git a/includes/ooyala.pages.inc b/includes/ooyala.pages.inc
index af294ec..c6b8f05 100644
--- a/includes/ooyala.pages.inc
+++ b/includes/ooyala.pages.inc
@@ -9,7 +9,7 @@
 /**
  * Menu callback; Display global configuration options for Ooyala fields.
  */
-function ooyala_settings_form() {
+function ooyala_settings_form(&$form_state) {
   $form['ooyala_global_pcode'] = array(
     '#type' => 'textfield',
     '#default_value' => variable_get('ooyala_global_pcode', ''),
@@ -84,16 +84,6 @@ function ooyala_settings_form() {
     
   }
 
-  $form['ooyala_reporting_level'] = array(
-    '#type' => 'radios',
-    '#title' => t('Reporting level'),
-    '#options' => array(
-      '1' => t('Verbose - display errors and status messages'),
-      '0' => t('Quiet - log errors to watchdog (recommended for production sites)'),
-    ),
-    '#default_value' => variable_get('ooyala_reporting_level', 1),
-  );
-
   $autopublish_help = '';
   $autopublish_help .= t('Auto-publishing is a tool that you can use to publish content only after it has completed processing by the Ooyala servers. To set this up you need to do the following:');
   $autopublish_help .= theme('item_list', array(
@@ -115,6 +105,17 @@ function ooyala_settings_form() {
     '#default_value' => variable_get('ooyala_autopublish', FALSE)
   );
 
+  $form['ooyala_reporting_level'] = array(
+    '#type' => 'radios',
+    '#title' => t('Reporting level'),
+    '#options' => array(
+      '1' => t('Verbose - display errors and status messages'),
+      '0' => t('Quiet - log errors to watchdog (recommended for production sites)'),
+    ),
+    '#default_value' => variable_get('ooyala_reporting_level', 1),
+    '#weight' => 10,
+  );
+
   return system_settings_form($form);
 }
 
@@ -253,7 +254,7 @@ function ooyala_refresh_thumbnail() {
       }
       else {
         $data['content'] = theme('ooyala_upload_preview');
-        $data['message'] = t('A thumbnail was not able to be retrieved. Check that the video code correct and that the video has finished processing.');
+        $data['message'] = t('A thumbnail was not able to be retrieved. Check that the video code is correct and that the video has finished processing.');
         $data['error'] = 0;
       }
 
diff --git a/ooyala.module b/ooyala.module
index 8ed349c..d3012fa 100755
--- a/ooyala.module
+++ b/ooyala.module
@@ -179,7 +179,11 @@ function ooyala_theme() {
  * Implementation of hook_cron().
  */
 function ooyala_cron() {
-  // first we will check for the list of pending thumbnails
+  if (!ooyala_api_available()) {
+    return;
+  }
+
+  // First we will check for the list of pending thumbnails.
   $thumbnails_to_get = variable_get('ooyala_pending_thumbnails', array());
 
   foreach ($thumbnails_to_get as $key => $embedcode) {
@@ -204,7 +208,7 @@ function ooyala_cron() {
 }
 
 /**
- * Query Ooayal API to sync status/length information for nodes that are
+ * Query Ooyala API to sync status/length information for nodes that are
  * missing that information.
  *
  * @param $limit
@@ -292,14 +296,7 @@ function ooyala_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
       // If the auto-publish feature is enabled, display a message on
       // unpublished nodes on view.
       if ($page && $node->status == 0 && isset($node->ooyala_field_names) && variable_get('ooyala_autopublish', 0)) {
-        $embedcodes = array();
-        foreach ($node->ooyala_field_names as $field_name) {
-          foreach ($node->{$field_name} as $delta => $item) {
-            if (!empty($item['value'])) {
-              $embedcodes[] = $item['value'];
-            }
-          }
-        }
+        $embedcodes = ooyala_node_embedcodes($node);
         if ($embedcodes) {
           $videos = ooyala_api_video_load_multiple($embedcodes);
           $videos_processing = FALSE;
@@ -321,7 +318,7 @@ function ooyala_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  * Implementation of hook_form_alter().
  */
 function ooyala_form_alter(&$form, &$form_state, $form_id) {
-  // Disable multiple values.
+  // Disable multiple values in the field configuration.
   if ($form_id == 'content_field_edit_form' && isset($form['#field']) && $form['#field']['widget']['type'] == 'ooyala_upload') {
     $form['field']['multiple']['#type'] = 'value';
   }
@@ -473,37 +470,6 @@ function ooyala_widget_info() {
 }
 
 /**
- * Implementation of hook_widget_settings().
- */
-function ooyala_widget_settings($op, $widget) {
-  switch ($op) {
-    case 'form':
-      $form = array();
-      if (module_exists('taxonomy')){
-        $vocs = taxonomy_get_vocabularies();
-        foreach($vocs as $voc) {
-          $vocabularies[$voc->vid]=$voc->name;
-        }
-        $form['ooyala_tags'] = array(
-          '#type' => 'select',
-          '#multiple' => true,
-          '#title' => 'Vocabulary tags to send',
-          '#description' => t('Tags from these vocabularies will be sent to ooyala to help classify the videos in the backlot'),
-          '#options' => $vocabularies,
-          '#default_value' => $widget['ooyala_tags'],
-        );
-      }
-      $return = $form;
-      break;
-    case 'save':
-      $return = array('ooyala_tags');
-      break;
-  }
-
-  return $return;
-}
-
-/**
  * Implementation of hook_widget().
  */
 function ooyala_widget(&$form, &$form_state, $field, $items, $delta = NULL) {
@@ -603,6 +569,22 @@ function ooyala_field_names($type_name) {
 }
 
 /**
+ * Fetch a list of all embed codes within a node.
+ */
+function ooyala_node_embedcodes($node) {
+  $embedcodes = array();
+  $ooyala_field_names = ooyala_field_names($node->type);
+  foreach ($ooyala_field_names as $field_name) {
+    foreach ($node->{$field_name} as $delta => $item) {
+      if (!empty($item['value'])) {
+        $embedcodes[] = $item['value'];
+      }
+    }
+  }
+  return $embedcodes;
+}
+
+/**
  * Check if Ooyala APIs are available.
  */
 function ooyala_api_available() {
@@ -615,6 +597,50 @@ function ooyala_api_available() {
 }
 
 /**
+ * Retreive a non-cached list of videos from Ooyala.
+ *
+ * @param $params
+ *   A list of Ooyala parameters on which to base the search.
+ * @see http://www.ooyala.com/support/docs/backlot_api#query
+ */
+function ooyala_api_video_query($params = array()) {
+  $videos = array();
+
+  // Query for any new videos that need to be retrieved.
+  module_load_include('inc', 'ooyala', 'includes/ooyala.partner_api');
+
+  $ooyala_api = new OoyalaPartnerAPI(variable_get('ooyala_global_secret', ''), variable_get('ooyala_global_pcode', ''));
+  $request = $ooyala_api->signed_params($params);
+  $response = drupal_http_request("http://api.ooyala.com/partner/query?$request");
+
+    // Populate all the video entries with the results.
+  if ($response->data && $xmldoc = @simplexml_load_string($response->data)) {
+    foreach ($xmldoc->children() as $result) {
+      $video = (array) $result;
+
+      // Convert labels.
+      if (isset($video['labels'])) {
+        $labels = $video['labels']->children();
+        $video['labels'] = array();
+        foreach ($labels as $label) {
+          // TODO: It would be nice if labels had a label ID here to use as the
+          // key. API change required from Ooyala.
+          $video['labels'][] = $label[0];
+        }
+      }
+
+      // Not sure what the stat property is used for yet.
+      if (isset($video['stat'])) {
+        unset($video['stat']);
+      }
+      $videos[$video['embedCode']] = $video;
+    }
+  }
+
+  return $videos;
+}
+
+/**
  * Load an individual video from Ooyala.
  */
 function ooyala_api_video_load($embedcode) {
@@ -632,7 +658,7 @@ function ooyala_api_video_load_multiple($embedcodes, $reset = FALSE) {
     $videos = array();
   }
 
-  // Build a list of videos to query that we do not yet have retreived.
+  // Build a list of videos to query that we do not yet have retrieved.
   $query_embedcodes = $embedcodes;
   foreach ($embedcodes as $key => $embedcode) {
     if (!isset($videos[$embedcode])) {
@@ -640,7 +666,7 @@ function ooyala_api_video_load_multiple($embedcodes, $reset = FALSE) {
     }
   }
 
-  // Query for any new videos that need to be retreived.
+  // Query for any new videos that need to be retrieved.
   if (!empty($query_embedcodes)) {
     module_load_include('inc', 'ooyala', 'includes/ooyala.partner_api');
 
@@ -648,12 +674,11 @@ function ooyala_api_video_load_multiple($embedcodes, $reset = FALSE) {
     $request = $ooyala_api->signed_params(
       array(
         'embedCode' => implode(',', $query_embedcodes),
-        'expires' => time() + 30,
       )
     );
     $response = drupal_http_request("http://api.ooyala.com/partner/query?$request");
 
-    // Default each embedcode to FALSE in case it is not retreived.
+    // Default each embedcode to FALSE in case it is not retrieved.
     foreach ($query_embedcodes as $embedcode) {
       $videos[$embedcode] = FALSE;
     }
@@ -696,7 +721,6 @@ function ooyala_api_fetch_image($embedcode) {
       'embedCode' => $embedcode,
       'range' => '0-1',
       'resolution' => '1024x768',
-      'expires' => time() + 30,
     )
   );
   $response = drupal_http_request("http://api.ooyala.com/partner/thumbnails?$request");
@@ -772,7 +796,7 @@ function theme_ooyala_player($embedcode, $player_id = NULL, $width = NULL, $heig
     $width = variable_get('ooyala_video_width', 400);
   }
   if (empty($height)) {
-    $height = variable_Get('ooyala_video_height', 300);
+    $height = variable_get('ooyala_video_height', 300);
   }
 
   $player_id = isset($player_id) ? $player_id : 'ooyala_player';
@@ -1113,14 +1137,12 @@ function ooyala_thickbox_player_page($embedcode) {
 
 /**
  * Utility function for eliminating the need to have the "text" module activated
- *
  */
-
-if(!function_exists('_text_allowed_values')) {
+if (!function_exists('_text_allowed_values')) {
   function _text_allowed_values($element) {
     $field = content_fields($element['#field_name'], $element['#type_name']);
     if (($allowed_values = content_allowed_values($field)) && isset($allowed_values[$element['#item']['value']])) {
       return $allowed_values[$element['#item']['value']];
     }
   }
-}
\ No newline at end of file
+}
