How to create handy URL for Drupal videos

This piece of code snipped is to provide bunch of info to create video node url's like you-tube videos. In you-tube they havehttp://www.youtube.com/watch?v=0Od1LfPMZis kind of handy URL, lets take a look at how to create that kind of handy URL. There are several advantages using this kind of url and disadvantages too. Cause this URL is not SEO friendly url.

Required Modules : Video, Pathauto, Custom Token.

Step 1 :  Install above modules on your Drupal site

Step 2 : Go to sitebuiding->Tokens->Create and add below details.

  • Add token ID : token_custom_video
  • Add description : Custom handy URL for videos
  • Select the type as node Paste the below code to the text area and save it.
<?php
    $in = $node->changed;
    $to_num = false;
    $pad_up = false;
    $passKey = null;
    $index = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if ($passKey !== null) {
        // Although this function's purpose is to just make the
        // ID short - and not so much secure,
        // with this patch by Simon Franz (<a href="http://blog.snaky.org/" title="http://blog.snaky.org/">http://blog.snaky.org/</a>)
        // you can optionally supply a password to make it harder
        // to calculate the corresponding numeric ID
        
        for ($n = 0; $n<strlen($index); $n++) {
            $i[] = substr( $index,$n ,1);
        }
 
        $passhash = hash('sha256',$passKey);
        $passhash = (strlen($passhash) < strlen($index))
            ? hash('sha512',$passKey)
            : $passhash;
 
        for ($n=0; $n < strlen($index); $n++) {
            $p[] =  substr($passhash, $n ,1);
        }
        
        array_multisort($p,  SORT_DESC, $i);
        $index = implode($i);
    }
 
    $base  = strlen($index);
 
    if ($to_num) {
        // Digital number  <<--  alphabet letter code
        $in  = strrev($in);
        $out = 0;
        $len = strlen($in) - 1;
        for ($t = 0; $t <= $len; $t++) {
            $bcpow = bcpow($base, $len - $t);
            $out   = $out + strpos($index, substr($in, $t, 1)) * $bcpow;
        }
 
        if (is_numeric($pad_up)) {
            $pad_up--;
            if ($pad_up > 0) {
                $out -= pow($base, $pad_up);
            }
        }
        $out = sprintf('%F', $out);
        $out = substr($out, 0, strpos($out, '.'));
    } else { 
        // Digital number  -->>  alphabet letter code
        if (is_numeric($pad_up)) {
            $pad_up--;
            if ($pad_up > 0) {
                $in += pow($base, $pad_up);
            }
        }
 
        $out = "";
        for ($t = floor(log($in, $base)); $t >= 0; $t--) {
            $bcp = bcpow($base, $t);
            $a   = floor($in / $bcp) % $base;
            $out = $out . substr($index, $a, 1);
            $in  = $in - ($a * $bcp);
        }
        $out = strrev($out); // reverse
    }
 
    return $out;
?>

Now you have creatd a custom token to create automatic URL for nodes.

Step 3 : Now go to site building->urlalies->automatic path settings. Select the video node and add video/[token_custom_video]. enjoy with your new custom URL for your videos.