Filmati youtube in streaming su coppermine Filmati youtube in streaming su coppermine
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Filmati youtube in streaming su coppermine

Started by elvisq, October 31, 2007, 10:01:06 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

elvisq

Ciao,

ho trovato questa mod/hack sul forum di coppermine per inserire i collegamenti ai propri file su youtube.

pensavo di esserci riuscito ma invece non capisco alcuni punti.

qualcuno è cosi gentile da tradurre o fare un help su come si fa questo mod??

ecco il link in questione

http://forum.coppermine-gallery.net/index.php?topic=37962.0

grazie

elvis

twist

#1
Quote from: Nibbler on October 31, 2006, 03:42:27 AM
Questa MOD ti permetterà di incorporare i video di Youtube nella tua galleria Coppermine. Una nuova sezione apparirà nella pagine di upload dove inserirai l'URL del video. Coppermine userà miniature, titolo, didascalia e parole chiave prendendole da Youtube durante la fase di upload del video.


Demo: http://gelipo.com/members/Nibbler/pictures/61993

Per poter utilizzare questa MOD sono necesserie alcune cose:


  • Youtube dev API ID (http://www.youtube.com/dev)
  • PHP URL fopen abilitto
  • devi assicurarti che gli URI funzionino correttamente, giusti permessi, ect.

File che necessitano una modifica: upload.php, theme.php

upload.php, aggiungi questo codice all'inizio del file appena dopo i commenti (puoi saltare questo punto se possiedi PHP5)



if (!function_exists('file_put_contents')) {
function file_put_contents($n,$d) {
$f=@fopen($n,"w");
if (!$f) {
return false;
} else {
fwrite($f,$d);
fclose($f);
return true;
}
}
}


Quindi trova


            // Add the control device.
            $form_array[] = array('control', 'phase_1', 4);
           

Prima Aggiungi
           

           // Youtube
           if (USER_ID) {
            $form_array[] = 'Youtube uploads';
              $form_array[] = array('', 'YT_array[]', 0, 256, 3);
              $form_array[] = 'Note: YouTube videos must be added in the form http://www.youtube.com/watch?v=xxxxxxxxxxx';
}
         
         
Cerca      

//Now we must prepare the inital form for adding the pictures to the database, and we must move them to their final location.
         
Prima aggiungi
         

    // youtube
   
   $YT_array = count($_POST['YT_array']);

if ($YT_array) {
$YT_failure_array = array();

for ($counter = 0; $counter < $YT_array; $counter++) {

// Create the failure ordinal for ordering the report of failed uploads.

$failure_cardinal = $counter + 1;

$failure_ordinal = ''.$failure_cardinal.'. ';
           
$YT_URI = $_POST['YT_array'][$counter];

if (!$YT_URI) continue;


if (preg_match('/youtube\.com\/watch\?v=(.*)/', $YT_URI, $matches)){

$vid = $matches[1];
                     
$xurl = "http://www.youtube.com/api2_rest?method=youtube.videos.get_details&dev_id=xxxxxxxxxxx&video_id=$vid";
                     
$xdata = file_get_contents($xurl);

file_put_contents($CONFIG['fullpath'] . "edit/yt_$vid.xml", $xdata);

// todo: parse the xml properly
if (preg_match('/<thumbnail_url>(.*)<\/thumbnail_url>/', $xdata, $xmatches)){

$thumbnail = $xmatches[1];

$rh = fopen($thumbnail, 'rb');
$wh = fopen($CONFIG['fullpath'] . "edit/yt_$vid.jpg", 'wb');


        while (!feof($rh)) fwrite($wh, fread($rh, 1024));

fclose($rh);
fclose($wh);
     
$escrow_array[] = array('actual_name'=>"youtube_$vid.jpg", 'temporary_name'=> "yt_$vid.jpg");

} else {
$YT_failure_array[] = array( 'failure_ordinal'=>$failure_ordinal, 'URI_name'=> $YT_URI, 'error_code'=> $xdata);
}
             
             } else {
                 $YT_failure_array[] = array( 'failure_ordinal'=>$failure_ordinal, 'URI_name'=> $YT_URI, 'error_code'=> 'Failed to find video');
             }
         }
     }



Nel blocco di codice precedente, devi cambiare xxxxxxxxxxx con il tuo youtube id.

     
Cerca

     
     $zip_error_count = count($zip_failure_array);


Dopo aggiungi

     
      $YT_error_count = count($YT_failure_array);

     
Cerca

   
        // Create error report if we have errors.
    if (($file_error_count + $URI_error_count + $zip_error_count) > 0) {

   
Cambia in

   
        // Create error report if we have errors.
    if (($file_error_count + $URI_error_count + $zip_error_count + $YT_error_count) > 0) {

     
Cerca

     
             // Close the error report table.
        endtable()


Prima aggiungi
       
     
                // Look for YT upload errors.
        if ($YT_error_count > 0) {

            // There are URI upload errors. Generate the section label.
            form_label("YT errors:");
            echo "<tr><td>URI</td><td>Error message</td></tr>";

            // Cycle through the file upload errors.
            for ($i=0; $i < $YT_error_count; $i++) {

                // Print the error ordinal, file name, and error code.
                echo "<tr><td>{$YT_failure_array[$i]['failure_ordinal']} {$YT_failure_array[$i]['URI_name']}</td><td>{$YT_failure_array[$i]['error_code']}</td></tr>";

            }

        }

       
Cerca

       
                $form_array = array(
        sprintf($lang_upload_php['max_fsize'], $CONFIG['max_upl_size']),
        array($lang_upload_php['album'], 'album', 2),
        array('MAX_FILE_SIZE', $max_file_size, 4),
        array($lang_upload_php['picture'], 'userpicture', 1, 1),
        array($lang_upload_php['pic_title'], 'title', 0, 255, 1),
        array($captionLabel, 'caption', 3, $CONFIG['max_img_desc_length']),
        array($lang_upload_php['keywords'], 'keywords', 0, 255, 1),
        array('event', 'picture', 4)
        );


Cambia in
       
       
        if (preg_match('/^youtube_(.*)\.jpg$/', $file_set[0], $ytmatches)){

         $vid = $ytmatches[1];

$xdata = file_get_contents($CONFIG['fullpath'] . "edit/yt_$vid.xml");


// todo: parse the xml properly
preg_match('/<description>(.*)<\/description>/', $xdata, $xmatches);
$description = substr($xmatches[1], 0, $CONFIG['max_img_desc_length']);

// todo: parse the xml properly
preg_match('/<tags>(.*)<\/tags>/', $xdata, $xmatches);
$keywords = $xmatches[1];

// todo: parse the xml properly
preg_match('/<title>(.*)<\/title>/', $xdata, $xmatches);
$title = substr($xmatches[1], 0, 255);


                $form_array = array(
        array($lang_upload_php['album'], 'album', 2),
        array($lang_upload_php['pic_title'], 'title', 0, 255, 1, $title),
        array($captionLabel, 'caption', 3, $CONFIG['max_img_desc_length'], $description),
        array($lang_upload_php['keywords'], 'keywords', 0, 255, 1, $keywords),
    array('control', 'phase_2', 4),
    array('unique_ID', $_POST['unique_ID'], 4),
        );
       
   
    } else {

                $form_array = array(
        sprintf($lang_upload_php['max_fsize'], $CONFIG['max_upl_size']),
        array($lang_upload_php['album'], 'album', 2),
        array('MAX_FILE_SIZE', $max_file_size, 4),
        array($lang_upload_php['picture'], 'userpicture', 1, 1),
        array($lang_upload_php['pic_title'], 'title', 0, 255, 1),
        array($captionLabel, 'caption', 3, $CONFIG['max_img_desc_length']),
        array($lang_upload_php['keywords'], 'keywords', 0, 255, 1),
        array('event', 'picture', 4)
        );

}


theme.php (Se non trovi questo pezzo di codice, copia la funzione theme_html_picture() dal theme sample  e applica le modifiche seguenti)

Find


if (isset($image_size['reduced'])) {


Change to


      if (preg_match('/^youtube_(.*)\.jpg$/', $CURRENT_PIC_DATA['filename'], $ytmatches)){
   
    $vid = $ytmatches[1];
      $pic_html = '<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/'. $vid . '"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'. $vid . '" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br />';
   
    } elseif (isset($image_size['reduced'])) {



Se ottieni questo errore durante l'upload:
Quote
YouTube internal error. Please report this issue -- including the exact method of producing this error -- to YouTube.

Probabilmente il tuo dev_id è errato.

Ecco, ora dovrebbe essere più chiaro no? ;)

Davide Renda


elvisq

Scusa ma il file theme.php lo trovo sotto la cartella themes?

devo modificare tutti i theme.php se lascio la possibilità di cambiarlo vero??

elvis

Davide Renda

Devi modificare il file theme.php del tuo tema in uso; devi modificare il file del tema che usi o che intendi utilizzare

twist

ahaha più che altro scusate l'ortografia e la sintassi. domani correggo ;)
L'ho fatta di fretta senza rileggere.

notte :)

elvisq

scusate ma bisogna copiare solo questo?

function theme_html_picture()

{

    global $CONFIG, $CURRENT_PIC_DATA, $CURRENT_ALBUM_DATA, $USER;

    global $album, $comment_date_fmt, $template_display_media;

    global $lang_display_image_php, $lang_picinfo;



    $pid = $CURRENT_PIC_DATA['pid'];

    $pic_title = '';



    if (!isset($USER['liv']) || !is_array($USER['liv'])) {

        $USER['liv'] = array();

    }

    // Add 1 to hit counter

    if (!USER_IS_ADMIN && !in_array($pid, $USER['liv']) && isset($_COOKIE[$CONFIG['cookie_name'] . '_data'])) {

        add_hit($pid);

        if (count($USER['liv']) > 4) array_shift($USER['liv']);

        array_push($USER['liv'], $pid);

    }



    if($CONFIG['thumb_use']=='ht' && $CURRENT_PIC_DATA['pheight'] > $CONFIG['picture_width'] ){ // The wierd comparision is because only picture_width is stored

      $condition = true;

    }elseif($CONFIG['thumb_use']=='wd' && $CURRENT_PIC_DATA['pwidth'] > $CONFIG['picture_width']){

      $condition = true;

    }elseif($CONFIG['thumb_use']=='any' && max($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight']) > $CONFIG['picture_width']){

      $condition = true;

    }else{

     $condition = false;

    }



    if ($CURRENT_PIC_DATA['title'] != '') {

        $pic_title .= $CURRENT_PIC_DATA['title'] . "\n";

    }

    if ($CURRENT_PIC_DATA['caption'] != '') {

        $pic_title .= $CURRENT_PIC_DATA['caption'] . "\n";

    }

    if ($CURRENT_PIC_DATA['keywords'] != '') {

        $pic_title .= $lang_picinfo['Keywords'] . ": " . $CURRENT_PIC_DATA['keywords'];

    }



    if (!$CURRENT_PIC_DATA['title'] && !$CURRENT_PIC_DATA['caption']) {

        template_extract_block($template_display_media, 'img_desc');

    } else {

        if (!$CURRENT_PIC_DATA['title']) {

            template_extract_block($template_display_media, 'title');

        }

        if (!$CURRENT_PIC_DATA['caption']) {

            template_extract_block($template_display_media, 'caption');

        }

    }



    $CURRENT_PIC_DATA['menu'] = html_picture_menu(); //((USER_ADMIN_MODE && $CURRENT_ALBUM_DATA['category'] == FIRST_USER_CAT + USER_ID) || ($CONFIG['users_can_edit_pics'] && $CURRENT_PIC_DATA['owner_id'] == USER_ID && USER_ID != 0) || GALLERY_ADMIN_MODE) ? html_picture_menu($pid) : '';



    if ($CONFIG['make_intermediate'] && $condition ) {

        $picture_url = get_pic_url($CURRENT_PIC_DATA, 'normal');

    } else {

        $picture_url = get_pic_url($CURRENT_PIC_DATA, 'fullsize');

    }



    $image_size = compute_img_size($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight'], $CONFIG['picture_width']);



    $pic_title = '';

    $mime_content = cpg_get_type($CURRENT_PIC_DATA['filename']);





    if ($mime_content['content']=='movie' || $mime_content['content']=='audio') {



        if ($CURRENT_PIC_DATA['pwidth']==0 || $CURRENT_PIC_DATA['pheight']==0) {

            $CURRENT_PIC_DATA['pwidth']  = 320; // Default width



            // Set default height; if file is a movie

            if ($mime_content['content']=='movie') {

                $CURRENT_PIC_DATA['pheight'] = 240; // Default height

            }

        }



        $ctrl_offset['mov']=15;

        $ctrl_offset['wmv']=45;

        $ctrl_offset['swf']=0;

        $ctrl_offset['rm']=0;

        $ctrl_offset_default=45;

        $ctrl_height = (isset($ctrl_offset[$mime_content['extension']]))?($ctrl_offset[$mime_content['extension']]):$ctrl_offset_default;

        $image_size['whole']='width="'.$CURRENT_PIC_DATA['pwidth'].'" height="'.($CURRENT_PIC_DATA['pheight']+$ctrl_height).'"';

    }



    if ($mime_content['content']=='image') {

        if (preg_match('/^youtube_(.*)\.jpg$/', $CURRENT_PIC_DATA['filename'], $ytmatches)){

       

          $vid = $ytmatches[1];

            $pic_html = '<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/'. $vid . '"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'. $vid . '" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br /><table align=\"center\">';

       

       } elseif (isset($image_size['reduced'])) {



            $winsizeX = $CURRENT_PIC_DATA['pwidth']+5;  //the +'s are the mysterious FF and IE paddings

            $winsizeY = $CURRENT_PIC_DATA['pheight']+3; //the +'s are the mysterious FF and IE paddings

            $pic_html = "<a href=\"javascript:;\" onclick=\"MM_openBrWindow('displayimage.php?pid=$pid&amp;fullsize=1','" . uniqid(rand()) . "','scrollbars=yes,toolbar=no,status=no,resizable=yes,width=$winsizeX,height=$winsizeY')\">";

            $pic_title = $lang_display_image_php['view_fs'] . "\n==============\n" . $pic_title;

            $pic_html .= "<img src=\"" . $picture_url . "\" class=\"image\" border=\"0\" alt=\"{$lang_display_image_php['view_fs']}\" /><br />";

            $pic_html .= "</a>\n";

        } else {

            $pic_html = "<img src=\"" . $picture_url . "\" {$image_size['geom']} class=\"image\" border=\"0\" alt=\"\" /><br />\n";

        }

    } elseif ($mime_content['content']=='document') {

        $pic_thumb_url = get_pic_url($CURRENT_PIC_DATA,'thumb');

        $pic_html = "<a href=\"{$picture_url}\" target=\"_blank\" class=\"document_link\"><img src=\"".$pic_thumb_url."\" border=\"0\" class=\"image\" /></a>\n<br />";

    } else {

        $autostart = ($CONFIG['media_autostart']) ? ('true'):('false');



        $players['WMP'] = array('id' => 'MediaPlayer',

                                'clsid' => 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" ',

                                'codebase' => 'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ',

                                'mime' => 'type="application/x-mplayer2" ',

                               );

        $players['RMP'] = array('id' => 'RealPlayer',

                                'clsid' => 'classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" ',

                                'codebase' => '',

                                'mime' => 'type="audio/x-pn-realaudio-plugin" '

                               );

        $players['QT']  = array('id' => 'QuickTime',

                                'clsid' => 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ',

                                'codebase' => 'codebase="http://www.apple.com/qtactivex/qtplugin.cab" ',

                                'mime' => 'type="video/x-quicktime" '

                               );

        $players['SWF'] = array('id' => 'SWFlash',

                                'clsid' => ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ',

                                'codebase' => 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ',

                                'mime' => 'type="application/x-shockwave-flash" '

                               );

        $players['UNK'] = array('id' => 'DefaultPlayer',

                                'clsid' => '',

                                'codebase' => '',

                                'mime' => ''

                               );



        if (isset($_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player'])) {

            $user_player = $_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player'];

        } else {

            $user_player = $mime_content['player'];

        }



                // There isn't a player selected or user wants client-side control

        if (!$user_player) {

            $user_player = 'UNK';

        }



        $player = $players[$user_player];



        $pic_html  = '<object id="'.$player['id'].'" '.$player['clsid'].$player['codebase'].$player['mime'].$image_size['whole'].'>';

        $pic_html .= "<param name=\"autostart\" value=\"$autostart\" /><param name=\"src\" value=\"". $picture_url . "\" />";

        $pic_html .= '<embed '.$image_size['whole'].' src="'. $picture_url . '" autostart="'.$autostart.'" '.$player['mime'].'></embed>';

        $pic_html .= "</object><br />\n";

    }



    $CURRENT_PIC_DATA['html'] = $pic_html;

    $CURRENT_PIC_DATA['header'] = '';

    $CURRENT_PIC_DATA['footer'] = '';



    $CURRENT_PIC_DATA = CPGPluginAPI::filter('file_data',$CURRENT_PIC_DATA);



    $params = array('{CELL_HEIGHT}' => '100',

        '{IMAGE}' => $CURRENT_PIC_DATA['header'].$CURRENT_PIC_DATA['html'].$CURRENT_PIC_DATA['footer'],

        '{ADMIN_MENU}' => $CURRENT_PIC_DATA['menu'],

        '{TITLE}' => bb_decode($CURRENT_PIC_DATA['title']),

        '{CAPTION}' => bb_decode($CURRENT_PIC_DATA['caption']),

        );



    return template_eval($template_display_media, $params);

}




elvisq

RIUSCITO!!!
funziona grazie


domanda ma per quelli di google video come si fa??

grazie

elvis

twist

Sinceramente non ne ho idea, ma molto probabilmente no.
Prova a vedere nei gruppi gestiti da google se ne parlano

Davide Renda

Quote from: elvisq on November 01, 2007, 07:58:57 AM
RIUSCITO!!!
funziona grazie


domanda ma per quelli di google video come si fa??

grazie

elvis

UNA DOMANDA PER THREAD
Perbacco, un po' di rispetto. C'è scritto nella policy che hai confermato all'iscrizione, c'è scritto nelle regole del forum in bell'evidenza in questa sezione, te l'ho ripetuto già in due altre occasioni.

Usa la funziona RICERCA, scoprirai che non, al momento, non esiste nulla in merito.

Aquilasfx

Non ho capito una cosa:

QuotePer poter utilizzare questa MOD sono necesserie alcune cose:

    * Youtube dev API ID (http://www.youtube.com/dev)

Con questo che devo fare?

E poi quando te hai scritto:
QuoteNel blocco di codice precedente, devi cambiare xxxxxxxxxxx con il tuo youtube id.

al posto delle xxxx devo mettere l'id con cui mi loggo su youtube?

GRazie per la disponibilità :)

Aquilasfx

Riuscito: allora direi di integrare nella guida questo link diretto per crearsi il dev_id da mettere al posto delle xxxx http://www.youtube.com/my_profile_dev

djghostdj

ciao a tutti, ho eseguito alla lettera il tutto e sembra funzionare, solo che alla fine della procedura di upload mi esce


QuoteIl file precedente non può essere inserito.

Tutti i files inseriti con successo. 

e non carica niente >:(

che puo' essere??

grazie

djghostdj

ho risolto il problema di cui sopra,
avevo fatto un errore nella modifica del file upload.php

però adesso, mi carica il video ma si apre la pagina come se fosse una immagine e non si vede il player di you tube...

la gallery è http://www.djghost.it/motogallery/

accesso

user: mimmo
psw: mimmo

il video di test è in questa categoria
http://www.djghost.it/motogallery/index.php?cat=36

qualcuno mi puo' aiutare??  :-[

djghostdj

ragazzi, ho risolto, magari puo' servire a qualcuno, praticamente...

per provare caricavo sempre lo stesso video e lo cancellavo dall'area amministrazione, ma nella cartella
albums/userpics/
rimaneva sempre l'anteprima creata e quindi avendo sempre lo stesso nome aggiungeva un nomero alla fine per distinguerla dalle altre...
di conseguenza questo cambiare il nome all'anteprima lo cambiava anche al link che andava a recuperare il video quindi non lo caricava...

spero di essere stato chiaro.

saluti :D

phantom_83

Salve ho un piccolo problema con il discorso del dev_id. io sono iscritto già da tempo ma non ho mai visto sto dev_id. ho provato ad inserire il nome utente, l'indirizzo email, mi sono registrato nuovamente con una nuova email, ma niente da fare, non mi viene visualizzato nessun dev_id. dove lo devo andare a prendere?

twist

#16
come scritto nel tutorial, devi farti fornire un dev_id da questo indirizzo:
http://www.youtube.com/dev

ok recentemente hanno cambiato, dovresti poterlo ottenere qua invece:
http://code.google.com/apis/youtube/dashboard/

phantom_83

si anche con quello ho provato ma niente da fare. non riesco a capire cosa possa essere successo.

phantom_83

Ma qualcuno di voi ha provato ad usare quel dev? è talmente lungo...io non riesco a capire dove sbaglio i file sono stati modificati come da esempio, poi ho cambiato tema e rifatto le modifiche, inserito nel file upload.php il dev che ho ottenuto ma mi da sempre lo stesso errore:

YT errors:
URI   Error message
1. http://www.youtube.com/watch?v=yVA-xTBeHyM

Io sto usando attualmente il tema classico ed ho notato che all'interno del file theme.php non c'è alcuna parte di codice quindi ho copiato solo quella che mi interessava. magari ho sbagliato proprio quella procedura, dimenticando qualceh pezzo di codice. qualcuno che sappia aiutarmi?

zippoubuntu

anche io stesso problema:


   


Home :: Galleria personale :: Modalità utente :: Carica file :: Logout [zippoadmin]
Torna al sito :: Lista album :: Ultimi arrivi :: Ultimi commenti :: File più visti :: File più votati :: Preferiti :: Cerca

Configurazione    Categorie    Album    Gruppi    Utenti    Estrometti utenti    Mostra commenti    Ordina immagini    Aggiunta cumulativa    Strumenti di amministrazione    Profilo    Documentazione
Informazione
0 caricamenti sono andati a buon fine.
CONTINUA

Errore
I seguenti caricamenti hanno creato errori:
YT errors:
URI   Error message
1. http://www.youtube.com/watch?v=ha_E0UfTeZk