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) {
|
||||
$host = parse_url($url, PHP_URL_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() {
|
||||
|
@ -29,7 +36,8 @@ class ProxyController {
|
|||
if (isset($_GET['id'], $_GET['user'])) {
|
||||
$filename .= '-' . $_GET['user'] . '-' . $_GET['id'];
|
||||
}
|
||||
$downloader->url($url, $filename, 'mp4');
|
||||
$watermark = isset($_GET['watermark']);
|
||||
$downloader->url($url, $filename, $watermark);
|
||||
} else {
|
||||
// Stream
|
||||
$streamer = new \Sovit\TikTok\Stream();
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
<div class="column is-one-quarter">
|
||||
<a class="clickable-img" id="{$item->id}" href="#{$item->id}"
|
||||
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-music_title="{$item->music->title}"
|
||||
data-music_url="{path('/stream?url=' . urlencode($item->music->playUrl))}">
|
||||
|
@ -38,7 +39,11 @@
|
|||
</section>
|
||||
<footer class="modal-card-foot has-text-centered">
|
||||
<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>
|
||||
<audio id="audio" controls preload="none"></audio>
|
||||
<div class="buttons is-centered">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "pablouser1/proxitok",
|
||||
"description": "An alternative frontend for TikTok",
|
||||
"version": "1.4.1.2",
|
||||
"version": "1.4.1.3",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"type": "project",
|
||||
"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",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "275eed5df34976f1f82201b8aef4bddd",
|
||||
"content-hash": "94d34d2f322b7dfcf36f55780c95cd59",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bramus/router",
|
||||
|
@ -381,12 +381,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pablouser1/TikTok-API-PHP.git",
|
||||
"reference": "c6667d70757fd5405ee1b51eaa6602d8758d2abd"
|
||||
"reference": "6d2be1b886e455d6e124453dff07de3e89c0d45a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pablouser1/TikTok-API-PHP/zipball/c6667d70757fd5405ee1b51eaa6602d8758d2abd",
|
||||
"reference": "c6667d70757fd5405ee1b51eaa6602d8758d2abd",
|
||||
"url": "https://api.github.com/repos/pablouser1/TikTok-API-PHP/zipball/6d2be1b886e455d6e124453dff07de3e89c0d45a",
|
||||
"reference": "6d2be1b886e455d6e124453dff07de3e89c0d45a",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
|
@ -425,7 +425,7 @@
|
|||
"issues": "https://github.com/ssovit/TikTok-API-PHP/issues",
|
||||
"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",
|
||||
|
|
|
@ -3,7 +3,8 @@ const item_title = document.getElementById('item_title')
|
|||
const audio = document.getElementById('audio')
|
||||
const audio_title = document.getElementById('audio_title')
|
||||
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 -- //
|
||||
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')
|
||||
|
||||
// -- 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
|
||||
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.src = music_url
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue