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>