Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Ultimi video caricati su youtube visualizzati sul proprio sito (tramite rss?)

    Ciao a tutti, spero che qualcuno riesca a darmi una mano perchè ci stò uscendo scemo

    Allora, vorrei sapere se esiste un modo per visualizzare gli ultimi video caricati sul mio canale di youtube e visualizzarli sul mio sito. Avevo pensato di usare gli rss di youtube, ma porca miseria mi mette in cima l'ultimo video commentato e non quello più recente in ordine di caricamento.

    Qualche idea?

  2. #2
    niente?

  3. #3
    Uno script l'ho trovato, però non mi visualizza le thumbnail... Cioè le visualizza col feed di esempio http://gdata.youtube.com/feeds/api/v...results=10&v=2" che è una ricerca dei video con quei tag, mentre a me serve un rss degli upload del mio canale.
    Ho visto che ci sono vari modi di visualizzare sti rss ma mi prende solo http://gdata.youtube.com/feeds/base/...tabase/uploads mentre http://www.youtube.com/rss/user/soni...ase/videos.rss li non funziona
    http://www.youtube.com/rss/username/...amdatabase.rss nemmeno
    rss.php

    Nessuno mi può dare una mano a fare in modo che mi restituisca le thumbnail (magari non così gigantesche)? Con sta aggiunta sarebbe perfetto.

    Codice PHP:
    <?PHP
      
    include "class.myyoutubeparser.php";

      
    # where is the feed located?
      
    $url "http://gdata.youtube.com/feeds/base/users/SonicDreamdatabase/uploads";

      
    # create object to hold data and display output
      
    $parser = new myYouTubeParser($url);

      
    $output $parser->getOutput(); # returns string containing HTML
      
    echo $output;
    ?>
    class.myyoutubeparser.php
    Codice PHP:
    <?PHP
      
    # Original PHP code by Chirp Internet: [url]www.chirp.com.au[/url]
      # Please acknowledge use of this code by including this header.

      
    class myYouTubeParser
      
    {
        
    # keeps track of current and preceding elements
        
    var $tags = array();

        
    # array containing all feed data
        
    var $output = array();

        
    # return value for display functions
        
    var $retval "";

        
    # constructor for new object
        
    function myYouTubeParser($file)
        {
          
    # instantiate xml-parser and assign event handlers
          
    $xml_parser xml_parser_create("");
          
    xml_set_object($xml_parser$this);
          
    xml_set_element_handler($xml_parser"startElement""endElement");
          
    xml_set_character_data_handler($xml_parser"parseData");

          
    # open file for reading and send data to xml-parser
          
    $fp = @fopen($file"r") or die("myYouTubeParser: Could not open $file for input");
          while(
    $data fread($fp4096)) {
            
    xml_parse($xml_parser$datafeof($fp)) or die(
              
    sprintf("myYouTubeParser: Error [b]%s[/b] at line [b]%d[/b]
    "
    ,
              
    xml_error_string(xml_get_error_code($xml_parser)),
              
    xml_get_current_line_number($xml_parser))
            );
          }
          
    fclose($fp);

          
    # dismiss xml parser
          
    xml_parser_free($xml_parser);
        }

        function 
    startElement($parser$tagname$attrs=array())
        {
          
    # capture LINK href where rel='alternate'
          
    if(($tagname == "LINK") && $attrs['HREF'] && $attrs['REL'] && $attrs['REL'] == 'alternate') {
            
    $this->startElement($parser'LINK', array()); 
            
    $this->parseData($parser$attrs['HREF']);
            
    $this->endElement($parser'LINK');
          }

          
    # capture HQ image URL
          
    if($attrs['URL'] && $attrs['HEIGHT'] && $attrs['WIDTH'] && !$attrs['TIME']) {
            
    $this->startElement($parser'MEDIA:THUMBNAIL', array()); 
            
    $this->parseData($parser$attrs['URL']);
            
    $this->endElement($parser'MEDIA:THUMBNAIL');
          }

          
    # capture duration
          
    if($tagname == 'YT:DURATION') {
            
    $this->startElement($parser'DURATION', array());
            
    $this->parseData($parser$attrs['SECONDS']);
            
    $this->endElement($parser'DURATION');
          }

          
    # capture rating details
          
    if($tagname == 'GD:RATING') {
            
    $this->startElement($parser'RATING', array());
            
    $this->parseData($parser$attrs['AVERAGE']);
            
    $this->endElement($parser'RATING');

            
    $this->startElement($parser'NUMRATERS', array());
            
    $this->parseData($parser$attrs['NUMRATERS']);
            
    $this->endElement($parser'NUMRATERS');
          }

          
    # capture statistics
          
    if($tagname == 'YT:STATISTICS') {
            
    $this->startElement($parser'FAVORITECOUNT', array());
            
    $this->parseData($parser$attrs['FAVORITECOUNT']);
            
    $this->endElement($parser'FAVORITECOUNT');

            
    $this->startElement($parser'VIEWCOUNT', array());
            
    $this->parseData($parser$attrs['VIEWCOUNT']);
            
    $this->endElement($parser'VIEWCOUNT');
          }

          
    # check if this element can contain others - list may be edited
          
    if(preg_match("/^(FEED|ENTRY)$/"$tagname)) {
            if(
    $this->tags) {
              
    $depth count($this->tags);
              if(
    is_array($tmp end($this->tags))) {
                list(
    $parent$num) = each($tmp);
                if(
    $parent$this->tags[$depth-1][$parent][$tagname]++;
              }
            }
            
    array_push($this->tags, array($tagname => array()));
          } else {
            
    # add tag to tags array
            
    array_push($this->tags$tagname);
          }
        }

        function 
    endElement($parser$tagname)
        {
          
    # remove tag from tags array
          
    array_pop($this->tags);
        }

        function 
    parseData($parser$data)
        {
          
    # return if data contains no text
          
    if(!trim($data)) return;
          
    $evalcode "\$this->output";
          foreach(
    $this->tags as $tag) {
            if(
    is_array($tag)) {
              list(
    $tagname$indexes) = each($tag);
              
    $evalcode .= "[\"$tagname\"]";
              if(${
    $tagname}) $evalcode .= "[" . (${$tagname} - 1) . "]";
              if(
    $indexesextract($indexes);
            } else {
              if(
    preg_match("/^([A-Z]+):([A-Z]+)$/"$tag$matches)) {
                
    $evalcode .= "[\"$matches[1]\"][\"$matches[2]\"]";
              } else {
                
    $evalcode .= "[\"$tag\"]";
              }
            }
          }
          eval(
    "$evalcode = $evalcode . '" addslashes($data) . "';");
        }

        
    # display channel as HTML
        
    function display_channel($data)
        {
          
    extract($data);
          
    $this->retval .= "<h2>" htmlspecialchars($TITLE) . "</h2>\n";
          if(
    $SUBTITLE$this->retval .= "

    htmlspecialchars($SUBTITLE) . "</p>\n";
          if(
    $ENTRY) {
            
    $this->retval .= "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n";
            foreach(
    $ENTRY as $item$this->display_item($item"VIDEO_LIST");
            
    $this->retval .= "</table>\n\n";
          }
        }

        
    # display a single video as HTML
        
    function display_item($data$parent)
        {
          
    extract($data);
          if(!
    $TITLE) return;
          
    $this->retval .= "<tr style=\"vertical-align: top;\">\n";
          
    $this->retval .= "<td style=\"text-align: center;\">";
          if(
    $THUMBNAIL_URL $MEDIA['GROUP']['MEDIA']['THUMBNAIL']) {
            
    $this->retval .= "

    "
    ;
            if(
    $LINK$this->retval .=  "<a href=\"$LINK\" target=\"_blank\">";
            
    $this->retval .= "<img src=\"$THUMBNAIL_URL\" border=\"0\" width=\"120\" alt=\"\">";
            if(
    $LINK$this->retval .= "</a>";
            if(
    $DURATION $MEDIA['GROUP']['DURATION']) {
              
    $this->retval .= "

    [size="
    1"][b]Duration:[/b] " sprintf("%02.2d:%02.2d"floor($DURATION/60), $DURATION%60) . "[/size]</p>";
            }
            
    $this->retval .= "</p>";
          }
          
    $this->retval .= "</td>\n";
          
    $this->retval .= "<td>";
          
    $this->retval .=  "<h3>";
          if(
    $LINK$this->retval .=  "<a href=\"$LINK\" target=\"_blank\">";
          
    $this->retval .= stripslashes($TITLE);
          if(
    $LINK$this->retval .= "</a>";
          if(
    $AUTHOR$this->retval .= " <small style=\"white-space: nowrap;\">by <a href=\"http://www.youtube.com/user/{$AUTHOR['NAME']}\">{$AUTHOR['NAME']}</a></small>";
          
    $this->retval .=  "</h3>";
          if(
    $SUMMARY) {
            
    $this->retval .= "

    nl2br(htmlspecialchars(stripslashes($SUMMARY))) . "</p>\n";
          } elseif(
    $DESCRIPTION $MEDIA['GROUP']['MEDIA']['DESCRIPTION']) {
            
    $this->retval .= "

    nl2br(htmlspecialchars(stripslashes($DESCRIPTION))) . "</p>\n";
          }
          
    $tmp = array();
          if(
    $PUBLISHED) {
            
    $tmp[] = "[b]Added:[/b] " date('j F Y'strtotime($PUBLISHED));
          } elseif(
    $UPLOAD_TIME $MEDIA['GROUP']['YT']['UPLOADED']) {
            
    $tmp[] = "[b]Added:[/b] " date('j F Y'strtotime($UPLOAD_TIME));
          }
          if(
    $RATING && $NUMRATERS$tmp[] = "[b]Rating:[/b] " number_format($RATING2) . " (" number_format($NUMRATERS) . " ratings)";
          if(
    $VIEWCOUNT$tmp[] = "[b]Views:[/b] " number_format($VIEWCOUNT);
          if(
    $FAVORITECOUNT$tmp[] = "[b]Favorite:[/b] " number_format($FAVORITECOUNT);
          
    $this->retval .= "

    [size="
    1"]";
          
    $this->retval .= implode("; "$tmp);
          if((
    $TAGS $MEDIA['GROUP']['MEDIA']['KEYWORDS']) && $TAGS explode(' '$TAGS)) {
            
    $this->retval .= "
    \n[b]Tags:[/b]"
    ;
            foreach(
    $TAGS as $tmp) {
              
    $this->retval .= " <a href=\"http://www.youtube.com/results?search_query=$tmp&amp;search=tag\" target=\"_blank\">$tmp</a>";
            }
            
    $this->retval .= "[/size]</p>\n";
          }
          
    $this->retval .= "</td>\n</tr>\n";
        }

        function 
    fixEncoding($input$output_encoding)
        {
          if(!
    function_exists('mb_detect_encoding')) return $input;

          
    $encoding mb_detect_encoding($input);
          switch(
    $encoding)
          {
            case 
    'ASCII':
            case 
    $output_encoding:
              return 
    $input;
            case 
    '':
              return 
    mb_convert_encoding($input$output_encoding);
            default:
              return 
    mb_convert_encoding($input$output_encoding$encoding);
          }
        }

        
    # display entire feed as HTML
        
    function getOutput($output_encoding='UTF-8')
        {
          
    $this->retval "";
          
    $start_tag key($this->output);

          switch(
    $start_tag)
          {
            case 
    "FEED":
              
    # youtube xml format
              
    $this->display_channel($this->output[$start_tag]);
              break;

            default:
              die(
    "Error: unrecognized start tag '$start_tag' in getOutput()");
          }

          return 
    $this->fixEncoding($this->retval$output_encoding);
        }

        
    # return raw data as array
        
    function getRawOutput($output_encoding='UTF-8')
        {
          return 
    $this->fixEncoding($this->output$output_encoding);
        }
      }
    ?>

  4. #4
    Ho trovato pure questo, il problema però è che escono delle x rosse al posto delle thumnbail. Essendo del 2008 tipo sicuramente avranno cambiato qualcosa.

    codice:
    <style> ul { list-style-type: none; } </style>    
    <td width="800" hight="800" valign="middle" class="headerNewsFlash">
    <marquee id="newsFlash" direction="down" scrolldelay="30" scrollamount="4"><div style="width: 0px" onMouseOver="newsFlash.stop();" onMouseOut="newsFlash.start();"><nobr>
        
    <?php
    
    //Codefreek Production 
        //www.talkphp.com 
        //BETA 0.1 RSS Grabber From Youtube 
            //Copyright 08 - 09 by codefreek
                //if you like please pm me and say thank you and i will continue doing more free scripts.
    
        //only use when needed!
        //ini_set("user_agent","Internet Explorer");
    
        //Edit here for your rss link
        $location = "http://www.youtube.com/rss/user/sonicdreamdatabase/videos.rss";
        $contents = file_get_contents($location);
        $xml      = new SimpleXMLElement($contents);
        $limiter = 0;
    
        print "<ul>";
    
        foreach($xml->channel->item as $item) {
           print "[*]";
        $linkarray = explode("=",$item->link);
        print "<a href='".$item->link."' title=''>";
        print "<img src=\"http://s2.ytimg.com/vi/".$linkarray[1]."/default.jpg\" title=\"My Thumbnail!\" />";
        print "</a>";
        print "";
        $limiter++;
    
    // here you can change the 10 to the limit
    //you want!
    
        if ($limiter == 10) break;
      
       
        }
    
        print "[/list]";
    
    
        ?>
    
    </marquee>
    
    
    </nobr></div></marquee>
    </td>
    <center>Youtube RSS Grabber 0.1 BETA - By Codefreek</center>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.