• 15-01-2016, 10:57:36
    #1
    Merhabalar,
    Sitemde kendi youtube kanalımdaki videoları otomatik olarak listenmesini istiyorum acaba nasıl sağlıyabilirim?
  • 15-01-2016, 11:05:53
    #2
    Google Api ile kolayca yapabilirsiniz.

    kaynak: https://developers.google.com/youtub.../list#examples

    <?
    php
    
    /**
     * This sample lists videos that are associated with a particular keyword and are in the radius of
     *   particular geographic coordinates by:
     *
     * 1. Searching videos with "youtube.search.list" method and setting "type", "q", "location" and
     *   "locationRadius" parameters.
     * 2. Retrieving location details for each video with "youtube.videos.list" method and setting
     *   "id" parameter to comma separated list of video IDs in search result.
     *
     * @author Ibrahim Ulukaya
     */
    
    
    $htmlBody 
    =
     
    <<<
    END
    
    <
    form method
    =
    "GET"
    >
    
      
    <div>
    
        
    Search
     
    Term
    :
     
    <
    input type
    =
    "search"
     id
    =
    "q"
     name
    =
    "q"
     placeholder
    =
    "Enter Search Term"
    >
    
      
    <
    /div>
      <div>
        Location: <input type="text" id="location" name="location" placeholder="37.42307,-122.08427">
      </
    div
    >
    
      
    <div>
    
        
    Location
     
    Radius
    :
     
    <
    input type
    =
    "text"
     id
    =
    "locationRadius"
     name
    =
    "locationRadius"
     placeholder
    =
    "5km"
    >
    
      
    <
    /div>
      <div>
        Max Results: <input type="number" id="maxResults" name="maxResults" min="1" max="50" step="1" value="25">
      </
    div
    >
    
      
    <
    input type
    =
    "submit"
     value
    =
    "Search"
    >
    
    <
    /form>
    END;
    
    /
    /
     
    This
     code executes 
    if
     the user enters a search query 
    in
     the form
    // and submits the form. Otherwise, the page displays the form above.
    
    if
     
    (
    $_GET
    [
    'q'
    ]
     
    &&
     $_GET
    [
    'maxResults'
    ])
     
    {
    
      
    // Call set_include_path() as needed to point to your client library.
    
      require_once 
    'Google/Client.php'
    ;
    
      require_once 
    'Google/Service/YouTube.php'
    ;
    
    
      
    /*
       * Set $DEVELOPER_KEY to the "API key" value from the "Access" tab of the
      * Google Developers Console <https://console.developers.google.com/>
      * Please ensure that you have enabled the YouTube Data API for your project.
      */
    
      $DEVELOPER_KEY 
    =
     
    'REPLACE_ME'
    ;
    
    
      $client 
    =
     
    new
     
    Google_Client
    ();
    
      $client
    ->
    setDeveloperKey
    (
    $DEVELOPER_KEY
    );
    
    
      
    // Define an object that will be used to make all API requests.
    
      $youtube 
    =
     
    new
     
    Google_Service_YouTube
    (
    $client
    );
    
    
      
    try
     
    {
    
        
    // Call the search.list method to retrieve results matching the specified
    
        
    // query term.
    
        $searchResponse 
    =
     $youtube
    ->
    search
    ->
    listSearch
    (
    'id,snippet'
    ,
     array
    (
    
            
    'type'
     
    =>
     
    'video'
    ,
    
            
    'q'
     
    =>
     $_GET
    [
    'q'
    ],
    
            
    'location'
     
    =>
      $_GET
    [
    'location'
    ],
    
            
    'locationRadius'
     
    =>
      $_GET
    [
    'locationRadius'
    ],
    
            
    'maxResults'
     
    =>
     $_GET
    [
    'maxResults'
    ],
    
        
    ));
    
    
        $videoResults 
    =
     array
    ();
    
        
    # Merge video ids
    
        
    foreach
     
    (
    $searchResponse
    [
    'items'
    ]
     
    as
     $searchResult
    )
     
    {
    
          array_push
    (
    $videoResults
    ,
     $searchResult
    [
    'id'
    ][
    'videoId'
    ]);
    
        
    }
    
        $videoIds 
    =
     join
    (
    ','
    ,
     $videoResults
    );
    
    
        
    # Call the videos.list method to retrieve location details for each video.
    
        $videosResponse 
    =
     $youtube
    ->
    videos
    ->
    listVideos
    (
    'snippet, recordingDetails'
    ,
     array
    (
    
        
    'id'
     
    =>
     $videoIds
    ,
    
        
    ));
    
    
        $videos 
    =
     
    ''
    ;
    
    
        
    // Display the list of matching videos.
    
        
    foreach
     
    (
    $videosResponse
    [
    'items'
    ]
     
    as
     $videoResult
    )
     
    {
    
          $videos 
    .=
     sprintf
    (
    '<li>%s (%s,%s)</li>'
    ,
    
              $videoResult
    [
    'snippet'
    ][
    'title'
    ],
    
              $videoResult
    [
    'recordingDetails'
    ][
    'location'
    ][
    'latitude'
    ],
    
              $videoResult
    [
    'recordingDetails'
    ][
    'location'
    ][
    'longitude'
    ]);
    
        
    }
    
    
        $htmlBody 
    .=
     
    <<<
    END
    
        
    <h3>
    Videos
    <
    /h3>
        <ul>$videos</
    ul
    >
    
    END
    ;
    
      
    }
     
    catch
     
    (
    Google_Service_Exception
     $e
    )
     
    {
    
        $htmlBody 
    .=
     sprintf
    (
    '<p>A service error occurred: <code>%s</code></p>'
    ,
    
            htmlspecialchars
    (
    $e
    ->
    getMessage
    ()));
    
      
    }
     
    catch
     
    (
    Google_Exception
     $e
    )
     
    {
    
        $htmlBody 
    .=
     sprintf
    (
    '<p>An client error occurred: <code>%s</code></p>'
    ,
    
            htmlspecialchars
    (
    $e
    ->
    getMessage
    ()));
    
      
    }
    
    }
    
    ?>
    
    
    <!doctype html>
    
    <html>
    
    <head>
    
    <title>
    YouTube Geolocation Search
    </title>
    
    </head>
    
    <body>
    
      
    <?=
    $htmlBody
    ?>
    
    </body>
    
    </html>