File: /home/httpd/html/baretube.com.new/admin/youtube_bulk_import.php
<?php
ignore_user_abort();
ini_set('max_execution_time', 86400);
include('api.youtube.php');
include('scrape_functions.php');
require "db.php";
if (isset($_POST['formSubmit'])) {
$_POST = array_map_array('trim', $_POST);
if ($_POST['q'] == '') {
setMessage('"Search string" is required!', 'error');
}
if (!is_numeric($_POST['amount'])) {
setMessage('"Amount" must be positive integer value!', 'error');
}
if (!is_numeric($_POST['start_index'])) {
setMessage('"Start index" must be positive integer value!', 'error');
}
if ($_POST['submitter'] == '') {
setMessage('"Submitter" is required!', 'error');
}
if ($_POST['paysite'] == '') {
setMessage('"Paysite" is required!', 'error');
}
if (!getMessages(false, 'error')) {
if ($_POST['amount'] > 50) {
$_POST['amount'] = 50;
}
$listvideos = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=" . $_POST['amount'] . "&order=" . $_POST['orderby'] . "&q=" . urlencode($_POST['q']) . "&safeSearch=none&key=$youtubeApiKey"), true);
if ($_POST['start_index'] > 1) {
$pages = $_POST['start_index'];
$nextPageId = $listvideos['nextPageToken'];
foreach ($listvideos['items'] as $dupa) {
if ($dupa['id']['videoId']) {
$array[] = $dupa['id']['videoId'];
}
}
for ($i = 2; $i <= $pages; $i++) {
$listvideos = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=" . $_POST['amount'] . "&order=" . $_POST['orderby'] . "&q=" . urlencode($_POST['q']) . "&safeSearch=none&key=$youtubeApiKey&pageToken=$nextPageId"), true);
$nextPageId = $listvideos['nextPageToken'];
foreach ($listvideos['items'] as $dupa) {
if ($dupa['id']['videoId']) {
$array[] = $dupa['id']['videoId'];
}
}
}
} else {
foreach ($listvideos['items'] as $dupa) {
if ($dupa['id']['videoId']) {
$array[] = $dupa['id']['videoId'];
}
}
}
$getUser = dbRow("SELECT `record_num` FROM `users` WHERE `username` = '" . mysqli_real_escape_string($dblink, $_POST['submitter']) . "'");
$_POST['submitter'] = is_array($getUser) ? $getUser['record_num'] : 0;
foreach ($array as $i) {
unset($subarr);
unset($newarr);
unset($vidData);
unset($realData);
unset($keywords);
unset($code);
unset($title);
$code = $i;
$vidData = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/videos?id=$code&key=$youtubeApiKey&part=snippet,contentDetails,statistics,status"), true);
$realData['length'] = get_duration_seconds($vidData['items'][0]['contentDetails']['duration']);
$realData['title'] = (string) $vidData['items'][0]['snippet']['localized']['title'];
$realData['description'] = (string) $vidData['items'][0]['snippet']['localized']['description'];
$realData['embed'] = '<iframe width="560" height="315" src="https://www.youtube.com/embed/' . $code . '" frameborder="0" allowfullscreen></iframe>';
$realData['thumb'] = "https://i.ytimg.com/vi/$code/hqdefault.jpg";
$category = $vidData['items'][0]['snippet']['categoryId'];
$catData = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&id=$category&key=$youtubeApiKey"), true);
$realData['keywords'] = (string) $catData['items'][0]['snippet']['title'];
$realData = mysql_real_escape_array($realData);
if (count(dbQuery("SELECT record_num FROM content WHERE embed = '$realData[embed]'", false)) < 1) {
dbQuery("INSERT INTO content (title, description, keywords, date_added, approved, embed, length,submitter,paysite,encoded_date) VALUES ('$realData[title]', '$realData[title]', '$realData[keywords]', NOW(), 2, '$realData[embed]','$realData[length]','$_POST[submitter]', '$_POST[paysite]',NOW())");
$insert = mysqli_insert_id($dbconn);
dbQuery("INSERT INTO content_views (content, views) VALUES ('$insert','0')");
if ($_POST['niche']) {
foreach ($_POST['niche'] as $i) {
if (is_numeric($i)) {
dbQuery("INSERT INTO content_niches (content,niche) VALUES ('$insert','$i')");
}
}
}
if ($_POST['pornstar']) {
foreach ($_POST['pornstar'] as $i) {
if (is_numeric($i)) {
dbQuery("INSERT INTO content_pornstars (content,pornstar) VALUES ('$insert','$i')");
}
}
}
$name = $insert . '.jpg';
@mkdir($thumb_path . '/embedded');
$fileIn = $thumb_path . '/embedded/big-' . $name;
$fileOut = $thumb_path . '/embedded/' . $name;
file_put_contents($fileOut, file_get_contents($realData[thumb]));
makeImageThumbnail($fileOut, $fileIn, $thumbwidth, $thumbheight, 'mogrify');
$counter++;
}
}
setMessage("$counter added to publish queue");
header("Location: $_SERVER[REQUEST_URI]");
exit();
}
}
entities_walk($_POST);
?>
<? require "header.php"; ?>
<div class="content-page">
<div class="header-area">
<div class="breadcrumbs">
<a href="index.php">Admin Home</a>
<span><a href="youtube_bulk_import.php">Youtube Bulk Import</a></span>
</div>
</div>
<div class="content-outer">
<h2>Youtube<strong>BulkImport</strong></h2>
<div class="notification info">You can use this script to import videos from Youtube in bulk. Enter a search term below. You can fetch a maximum of 50 videos per query per page (youtube api limitation). Meaning - to get 150 videos about cats, max amount should be 50 and pages should be 3.</div>
<div class="content-inner">
<? echo getMessages(); ?>
<form method="POST" action="" class="form" novalidate autocomplete="off">
<table class="pagetable">
<tbody>
<tr>
<td>Search String</td>
<td><input name="q" type="text" value="<? echo $_POST['q']; ?>" required /></td>
</tr>
<tr>
<td>Max Amount</td>
<td><input name="amount" type="number" value="<? echo is_numeric($_POST['amount']) ? (int) $_POST['amount'] : 50; ?>" min="1" class="tiny" required /></td>
</tr>
<tr>
<td>Pages</td>
<td><input name="start_index" type="number" value="<? echo is_numeric($_POST['start_index']) ? (int) $_POST['start_index'] : 1; ?>" min="1" class="tiny" required /></td>
</tr>
<tr>
<td>Order By</td>
<td>
<select name="orderby" required>
<option<? echo ($_POST['orderby'] == 'relevance') ? ' selected' : ''; ?>>relevance</option>
<option<? echo ($_POST['orderby'] == 'date') ? ' selected' : ''; ?>>date</option>
<option<? echo ($_POST['orderby'] == 'viewCount') ? ' selected' : ''; ?>>viewCount</option>
<option<? echo ($_POST['orderby'] == 'rating') ? ' selected' : ''; ?>>rating</option>
</select>
</td>
</tr>
<tr>
<td>Video Submitter:</td>
<td>
<input type="text" name="submitter" id="contentAutocomplete" value="<? echo $_POST['submitter']; ?>" placeholder="Start typing username..." required />
<script type="text/javascript">
$(document).ready(function () {
$("#contentAutocomplete").autocomplete({
source: "search_content.php?type=2",
minLength: 2
});
});
</script>
</td>
</tr>
<tr>
<td>Categories:</td>
<td>
<select name="niche[]" multiple="multiple">
<?php $presult = dbQuery("SELECT * FROM `niches` ORDER BY `name`", false); ?>
<?php foreach ($presult as $srow) { ?>
<option value="<?php echo $srow['record_num']; ?>"<? echo in_array($srow['record_num'], (array) $_POST['niche']) ? ' selected' : ''; ?>><?php echo $srow['name']; ?></option>
<?php } ?>
</select>
<p class="hint">(Hold CTRL to make multiple selections)</p>
</td>
</tr>
<tr>
<td>Models:</td>
<td>
<select name="pornstar[]" multiple="multiple">
<?php $presult = dbQuery("SELECT * FROM `pornstars` ORDER BY `name`", false); ?>
<?php foreach ($presult as $srow) { ?>
<option value="<?php echo $srow['record_num']; ?>"<? echo in_array($srow['record_num'], (array) $_POST['pornstar']) ? ' selected' : ''; ?>><?php echo $srow['name']; ?></option>
<?php } ?>
</select>
<p class="hint">(Hold CTRL to make multiple selections)</p>
</td>
</tr>
<tr>
<td>Paysite:</td>
<td>
<select name="paysite" required>
<option value=""> - select paysite - </option>
<? $rresult = dbQuery("SELECT * FROM `paysites` ORDER BY `name`", false); ?>
<? foreach ($rresult as $rrow) { ?>
<option<? echo ($_POST['paysite'] == $rrow['record_num']) ? ' selected' : ''; ?> value="<? echo $rrow['record_num']; ?>"><? echo $rrow['name']; ?></option>
<? } ?>
</select>
</td>
</tr>
<tr class="item submit">
<td colspan="2">
<input type="hidden" name="formSubmit" value="1" />
<button type="submit" class="btn action-save">Submit</button>
</td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
</div>
<? require "footer.php"; ?>