/**
    * Get the contents from a URL.
    */
-  private static function getUrlContents($url) {
+  private static function getUrlContents($url, $user_agent = NULL) {
     $ch = curl_init($url);
     curl_setopt_array($ch, [
       CURLOPT_HEADER => FALSE,
       CURLOPT_COOKIEFILE => "",
       CURLOPT_RETURNTRANSFER => TRUE,
       CURLOPT_HTTPHEADER => ['Accept-language: en'],
-      CURLOPT_USERAGENT => Tweeper::$userAgent,
+      CURLOPT_USERAGENT => isset($user_agent) ? $user_agent : Tweeper::$userAgent,
     ]);
     $contents = Tweeper::curlExec($ch);
     curl_close($ch);
   /**
    * Get the headers from a URL.
    */
-  private static function getUrlInfo($url) {
+  private static function getUrlInfo($url, $user_agent = NULL) {
     $ch = curl_init($url);
     curl_setopt_array($ch, [
       CURLOPT_HEADER => TRUE,
       // Follow http redirects to get the real URL.
       CURLOPT_FOLLOWLOCATION => TRUE,
       CURLOPT_RETURNTRANSFER => TRUE,
-      CURLOPT_USERAGENT => Tweeper::$userAgent,
+      CURLOPT_USERAGENT => isset($user_agent) ? $user_agent : Tweeper::$userAgent,
     ]);
 
     $ret = Tweeper::curlExec($ch);