Allow download without watermark
This commit is contained in:
parent
dd5964cb97
commit
2c73bd0388
|
@ -9,7 +9,14 @@ class ProxyController {
|
||||||
static private function isValidDomain(string $url) {
|
static private function isValidDomain(string $url) {
|
||||||
$host = parse_url($url, PHP_URL_HOST);
|
$host = parse_url($url, PHP_URL_HOST);
|
||||||
$host_split = explode('.', $host);
|
$host_split = explode('.', $host);
|
||||||
return count($host_split) === 3 && in_array($host_split[1] . '.' . $host_split[2], self::VALID_TIKTOK_DOMAINS);
|
$host_count = count($host_split);
|
||||||
|
if ($host_count === 2) {
|
||||||
|
// Using no watermark
|
||||||
|
return in_array($host_split[0] . '.' . $host_split[1], self::VALID_TIKTOK_DOMAINS);
|
||||||
|
} elseif ($host_count === 3) {
|
||||||
|
return in_array($host_split[1] . '.' . $host_split[2], self::VALID_TIKTOK_DOMAINS);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static public function stream() {
|
static public function stream() {
|
||||||
|
@ -29,7 +36,8 @@ class ProxyController {
|
||||||
if (isset($_GET['id'], $_GET['user'])) {
|
if (isset($_GET['id'], $_GET['user'])) {
|
||||||
$filename .= '-' . $_GET['user'] . '-' . $_GET['id'];
|
$filename .= '-' . $_GET['user'] . '-' . $_GET['id'];
|
||||||
}
|
}
|
||||||
$downloader->url($url, $filename, 'mp4');
|
$watermark = isset($_GET['watermark']);
|
||||||
|
$downloader->url($url, $filename, $watermark);
|
||||||
} else {
|
} else {
|
||||||
// Stream
|
// Stream
|
||||||
$streamer = new \Sovit\TikTok\Stream();
|
$streamer = new \Sovit\TikTok\Stream();
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
<div class="column is-one-quarter">
|
<div class="column is-one-quarter">
|
||||||
<a class="clickable-img" id="{$item->id}" href="#{$item->id}"
|
<a class="clickable-img" id="{$item->id}" href="#{$item->id}"
|
||||||
data-video_url="{path('/stream?url=' . urlencode($item->video->playAddr))}"
|
data-video_url="{path('/stream?url=' . urlencode($item->video->playAddr))}"
|
||||||
data-video_download="{path('/stream?url=' . urlencode($item->video->playAddr) . '&download=1&id=' . $item->id . '&user=' . $item->author->uniqueId)}"
|
data-video_download_watermark="{path('/stream?url=' . urlencode($item->video->playAddr) . '&download=1&id=' . $item->id . '&user=' . $item->author->uniqueId) . '&watermark='}"
|
||||||
|
data-video_download_nowatermark="{path('/stream?url=' . urlencode('https://tiktok.com/@' . $item->author->uniqueId . '/' . $item->id) . '&download=1&id=' . $item->id . '&user=' . $item->author->uniqueId)}"
|
||||||
data-desc="{$item->desc}"
|
data-desc="{$item->desc}"
|
||||||
data-music_title="{$item->music->title}"
|
data-music_title="{$item->music->title}"
|
||||||
data-music_url="{path('/stream?url=' . urlencode($item->music->playUrl))}">
|
data-music_url="{path('/stream?url=' . urlencode($item->music->playUrl))}">
|
||||||
|
@ -38,7 +39,11 @@
|
||||||
</section>
|
</section>
|
||||||
<footer class="modal-card-foot has-text-centered">
|
<footer class="modal-card-foot has-text-centered">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a id="download_button" target="_blank" class="button is-info" download>Download</a>
|
<div class="buttons is-centered">
|
||||||
|
<a target="_blank" id="download_watermark" class="button is-info" download>Download with watermark</a>
|
||||||
|
<a target="_blank" id="download_nowatermark" class="button is-info">Download without watermark</a>
|
||||||
|
</div>
|
||||||
|
<p>Please be patient with the No Watermark option. It takes a while to download</p>
|
||||||
<p id="audio_title"></p>
|
<p id="audio_title"></p>
|
||||||
<audio id="audio" controls preload="none"></audio>
|
<audio id="audio" controls preload="none"></audio>
|
||||||
<div class="buttons is-centered">
|
<div class="buttons is-centered">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "pablouser1/proxitok",
|
"name": "pablouser1/proxitok",
|
||||||
"description": "An alternative frontend for TikTok",
|
"description": "An alternative frontend for TikTok",
|
||||||
"version": "1.4.1.2",
|
"version": "1.4.1.3",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"homepage": "https://github.com/pablouser1/ProxiTok",
|
"homepage": "https://github.com/pablouser1/ProxiTok",
|
||||||
|
|
10
composer.lock
generated
10
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "275eed5df34976f1f82201b8aef4bddd",
|
"content-hash": "94d34d2f322b7dfcf36f55780c95cd59",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "bramus/router",
|
"name": "bramus/router",
|
||||||
|
@ -381,12 +381,12 @@
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/pablouser1/TikTok-API-PHP.git",
|
"url": "https://github.com/pablouser1/TikTok-API-PHP.git",
|
||||||
"reference": "c6667d70757fd5405ee1b51eaa6602d8758d2abd"
|
"reference": "6d2be1b886e455d6e124453dff07de3e89c0d45a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/pablouser1/TikTok-API-PHP/zipball/c6667d70757fd5405ee1b51eaa6602d8758d2abd",
|
"url": "https://api.github.com/repos/pablouser1/TikTok-API-PHP/zipball/6d2be1b886e455d6e124453dff07de3e89c0d45a",
|
||||||
"reference": "c6667d70757fd5405ee1b51eaa6602d8758d2abd",
|
"reference": "6d2be1b886e455d6e124453dff07de3e89c0d45a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
@ -425,7 +425,7 @@
|
||||||
"issues": "https://github.com/ssovit/TikTok-API-PHP/issues",
|
"issues": "https://github.com/ssovit/TikTok-API-PHP/issues",
|
||||||
"email": "sovit.tamrakar@gmail.com"
|
"email": "sovit.tamrakar@gmail.com"
|
||||||
},
|
},
|
||||||
"time": "2022-02-06T13:17:16+00:00"
|
"time": "2022-02-07T20:07:07+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
|
|
|
@ -3,7 +3,8 @@ const item_title = document.getElementById('item_title')
|
||||||
const audio = document.getElementById('audio')
|
const audio = document.getElementById('audio')
|
||||||
const audio_title = document.getElementById('audio_title')
|
const audio_title = document.getElementById('audio_title')
|
||||||
const modal = document.getElementById('modal')
|
const modal = document.getElementById('modal')
|
||||||
const download_button = document.getElementById('download_button')
|
const download_watermark = document.getElementById('download_watermark')
|
||||||
|
const download_nowatermark = document.getElementById('download_nowatermark')
|
||||||
|
|
||||||
// -- HELPERS -- //
|
// -- HELPERS -- //
|
||||||
const getHash = () => window.location.hash.substring(1)
|
const getHash = () => window.location.hash.substring(1)
|
||||||
|
@ -21,10 +22,11 @@ const isModalActive = () => modal.classList.contains('is-active')
|
||||||
const toggleButton = (id, force) => document.getElementById(id) ? document.getElementById(id).toggleAttribute('disabled', force) : alert('That button does not exist')
|
const toggleButton = (id, force) => document.getElementById(id) ? document.getElementById(id).toggleAttribute('disabled', force) : alert('That button does not exist')
|
||||||
|
|
||||||
// -- MODAL -- //
|
// -- MODAL -- //
|
||||||
const swapData = ({ video_url, desc, video_download, music_title, music_url }) => {
|
const swapData = ({ video_url, desc, video_download_watermark, video_download_nowatermark, music_title, music_url }) => {
|
||||||
video.src = video_url
|
video.src = video_url
|
||||||
item_title.innerText = desc
|
item_title.innerText = desc
|
||||||
download_button.href = video_download
|
download_watermark.href = video_download_watermark
|
||||||
|
download_nowatermark.href = video_download_nowatermark
|
||||||
audio_title.innerText = music_title
|
audio_title.innerText = music_title
|
||||||
audio.src = music_url
|
audio.src = music_url
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue