質問 Darkfans ダウンロード中

yardlight8

ROM専
登録日
2025年11月1日
投稿
18
リアクションスコア
0
darkfansの動画を落とせるツールってある?しばらく探したけど、見つけた方法はもう使えなくなってた
 
買ったやつで試したら行けたから、たぶん大丈夫
 
Video Download HelperとInternet Download Managerは、今のところDRM付きのウォール投稿には使えない。
 
俺が言ってたのは自分で買った有料動画のことで、買ってないのは当然落とせないよ
 
YT Saverも使えなくなってるのを確認した。前はonlyfansのDRM付き購入分で使えてたんだけど。
 
できるよ、TubeDiggerのRecMode/Monitor Browserを使えば。今のところそれしかない
 
DRM用で使える方法ある?挙がってるのは全部試したし、ライセンス付きのTubeDiggerまで使ったけど全然ダメだった。
 
この投稿に従ったらうまくいった:
https://simpcityopen.com/posts/2239604/
補足:
- 要素の検証を開いたら、検索するのは data-token
- それを https://larley.dev/Page/Fastevo に貼り付けると、コピーして実行できるコマンドが出てくる(簡単にするために.batファイルに入れた)けど、実行するにはこれも落とす必要がある: https://github.com/nilaoda/N_m3u8DL-RE/releases とこれ https://github.com/shaka-project/shaka-packager/releases
- widevine拡張みたいなのが本当に必要かは分からない、https://larley.dev/Page/Fastevo のコマンドはそのまま動くっぽい。
darkfansはインスペクターを開くとウザいから、data-tokenを取るための小さいtampermonkeyスクリプトを作った:
コード:
// ==UserScript==
// @name Darkfans Click to Copy Data-Token
// @namespace http://tampermonkey.net
// @version 1.5
// @description Adds a floating button to copy the data-token on demand.
// @author You
// @include /^https?:\/\/(?:[^\/]+\.)?darkfans\.com/.*$/
// @grant GM_setClipboard
// @run-at document-end
// ==/UserScript==

(function() {
'use strict';

// 1. Create the floating button
const btn = document.createElement('button');
btn.textContent = '📋 Copy Token';

// Style the button to float in the bottom-right corner
btn.style.position = 'fixed';
btn.style.bottom = '20px';
btn.style.right = '20px';
btn.style.zIndex = '10000';
btn.style.backgroundColor = '#007bff';
btn.style.color = '#fff';
btn.style.border = 'none';
btn.style.borderRadius = '5px';
btn.style.padding = '10px 15px';
btn.style.cursor = 'pointer';
btn.style.fontFamily = 'sans-serif';
btn.style.fontSize = '14px';
btn.style.fontWeight = 'bold';
btn.style.boxShadow = '0 4px 6px rgba(0,0,0,0.2)';
btn.style.transition = 'background-color 0.2s';

// Hover effects
btn.onmouseover = () => btn.style.backgroundColor = '#0056b3';
btn.onmouseout = () => btn.style.backgroundColor = '#007bff';

// 2. Define what happens when clicked
btn.onclick = function() {
const element = document.querySelector('[data-token]');

if (element) {
const token = element.getAttribute('data-token');
if (token) {
// Copy to clipboard via Tampermonkey API
GM_setClipboard(token);

// Visual feedback on the button
btn.textContent = '✅ Copied!';
btn.style.backgroundColor = '#28a745';

// Reset button text after 2 seconds
setTimeout(() => {
btn.textContent = '📋 Copy Token';
btn.style.backgroundColor = '#007bff';
}, 2000);
return;
}
}

// Error feedback if token isn't found
btn.textContent = '❌ No Token Found';
btn.style.backgroundColor = '#dc3545';
setTimeout(() => {
btn.textContent = '📋 Copy Token';
btn.style.backgroundColor = '#007bff';
}, 2000);
};

// 3. Inject the button into the webpage
document.body.appendChild(btn);
})();
 
うまくいった。スクリプトありがとう。トークンが全然見つからなくて困ってた。
Darkfansで有名なコンテンツの一部はここだと禁止されてる。
せめてDMで個別に共有するのはOKか知ってる人いる?
 
今はめちゃくちゃ簡単にした。必要なのはこれ https://github.com/nilaoda/N_m3u8DL-RE/releases とこれ https://github.com/shaka-project/shaka-packager/releases を落として、両方PATHに追加して、俺のtampermonkeyスクリプトをインストールして、さらに俺のPowershellスクリプトを起動するだけ。あとはワンクリックで自動ダウンロードされる。
コード:
// ==UserScript==
// @name Fastevo Auto-Download
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Grabs DataToken, POSTs to Fastevo, copies N_m3u8DL-RE command to clipboard
// @include /^https?:\/\/(?:[^\/]+\.)?darkfans\.com/.*$/
// @grant GM_setClipboard
// @grant GM_xmlhttpRequest
// @connect larley.dev
// ==/UserScript==

(function() {
'use strict';

const btn = document.createElement('button');
btn.textContent = '⬇ Auto Download';

Object.assign(btn.style, {
position: 'fixed', bottom: '20px', right: '20px', zIndex: '10000',
backgroundColor: '#007bff', color: '#fff', border: 'none',
borderRadius: '5px', padding: '10px 15px', cursor: 'pointer',
fontFamily: 'sans-serif', fontSize: '14px', fontWeight: 'bold',
boxShadow: '0 4px 6px rgba(0,0,0,0.2)', transition: 'background-color 0.2s'
});
btn.onmouseover = () => btn.style.backgroundColor = '#0056b3';
btn.onmouseout = () => btn.style.backgroundColor = '#007bff';

function setStatus(text, color, reset = true) {
btn.textContent = text;
btn.style.backgroundColor = color;
if (reset) {
setTimeout(() => {
btn.textContent = '⬇ Auto Download';
btn.style.backgroundColor = '#007bff';
}, 3000);
}
}

function gmFetch(url, opts = {}) {
return new Promise((resolve, reject) => {
GM_xmlhttpRequest({
method: opts.method || 'GET',
url,
headers: opts.headers || {},
data: opts.body || null,
withCredentials: true,
timeout: 30000,
onload: r => resolve(r.responseText),
onerror: e => reject(new Error('Network error')),
ontimeout: () => reject(new Error('Timeout'))
});
});
}

btn.onclick = async function() {
const el = document.querySelector('[data-token]');
if (!el || !el.getAttribute('data-token')) {
setStatus('❌ No Token Found', '#dc3545');
return;
}
const token = el.getAttribute('data-token');

try {
setStatus('⏳ Fetching page…', '#ffc107', false);

// 1. GET the Fastevo page to obtain a fresh __RequestVerificationToken
const html = await gmFetch('https://larley.dev/Page/Fastevo');
const doc = new DOMParser().parseFromString(html, 'text/html');
const rvtInput = doc.querySelector('input[name="__RequestVerificationToken"]');
if (!rvtInput) throw new Error('No antiforgery token on page');
const rvt = rvtInput.value;

setStatus('⏳ Submitting token…', '#ffc107', false);

// 2. POST the DataToken
const body = new URLSearchParams();
body.append('DataToken', token);
body.append('__RequestVerificationToken', rvt);

const respHtml = await gmFetch('https://larley.dev/Page/Fastevo', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: body.toString()
});

// 3. Parse the command input
const respDoc = new DOMParser().parseFromString(respHtml, 'text/html');
const cmdInput = respDoc.querySelector('#command');
if (!cmdInput || !cmdInput.value) throw new Error('No command in response');

const command = cmdInput.value; // already decoded by DOMParser

// 4. Copy to clipboard - PowerShell monitor will pick it up
GM_setClipboard(command);

setStatus('✅ Sent! Watch cmd window', '#28a745');
} catch (e) {
console.error('[Fastevo Auto]', e);
setStatus('❌ ' + e.message, '#dc3545');
}
};

document.body.appendChild(btn);
})();
コード:
# FastevoMonitor.ps1
# Watches clipboard for N_m3u8DL-RE commands and runs them automatically.

$lastClipboard = ""

Write-Host "=== Fastevo N_m3u8DL-RE Clipboard Monitor ===" -ForegroundColor Cyan
Write-Host "Click the Tampermonkey button to start a download." -ForegroundColor Cyan
Write-Host "Press Ctrl+C to stop.`n" -ForegroundColor Cyan

while ($true) {
try {
$current = Get-Clipboard -Raw
if ($current -and $current -ne $lastClipboard) {
$lastClipboard = $current

# Match a command that has N_m3u8DL-RE plus at least one --key
if ($current -match 'N_m3u8DL-RE' -and $current -match '--key') {
$command = $current.Trim()
$ts = Get-Date -Format 'HH:mm:ss'
Write-Host "[$ts] Detected download command. Launching..." -ForegroundColor Green

# Build a temp .bat
# We append "-sv best -sa best" so it skips the interactive Spectre.Console prompt
$tempBat = [System.IO.Path]::GetTempFileName() + ".bat"
$bat = @"
@echo off
title Fastevo Download
echo Running: $command -sv best -sa best
echo.
$command -sv best -sa best
echo.
echo === Process finished ===
pause >nul
"@
Set-Content -Path $tempBat -Value $bat -Encoding ASCII

Start-Process -FilePath "cmd.exe" -ArgumentList "/c", "`"$tempBat`""

# Avoid re-triggering on the same clipboard content
Start-Sleep -Seconds 3
}
}
} catch {
Write-Host "Error: $_" -ForegroundColor Red
}
Start-Sleep -Milliseconds 500
}
 
Discordとか持ってない?やり方教えてほしい。全部やったけど、Tampermonkeyの拡張ボタンを押しても何も起きないんだよね
 
戻る
トップ