Pregunta Darkfans Descargando

yardlight8

Lurker
Registrado
1 Nov 2025
Mensajes
18
Puntos de reacción
0
¿Hay alguna herramienta que pueda descargar videos de darkfans? Busqué un buen rato y los métodos que encontré ya no funcionan
 
encontré la solución, Video Download Helper funcionó
 
lo probé con los que compré y funcionó, así que supongo que sí
 
Video Download Helper e Internet Download Manager actualmente no funcionan con los posts del muro con DRM.
 
hablaba de videos de pago que compré, obvio que no puedes bajar los que no compraste
 
También confirmo que YT Saver no funciona, a mí me había funcionado con compras de onlyfans con DRM.
 
sí se puede usando TubeDigger en RecMode/Monitor Browser, es la única opción por ahora
 
¿hay alguna opción que funcione para DRM? Probé todas las opciones mencionadas, incluso TubeDigger con licencia, y nada de suerte.
 
Seguí este post y funcionó:
https://simpcityopen.com/posts/2239604/
Algunas notas:
- Cuando abras inspeccionar elemento, lo que tienes que buscar es data-token
- Después de pegar eso en https://larley.dev/Page/Fastevo, te saldrá un comando que puedes copiar y ejecutar (yo lo puse en un archivo .bat para que sea más fácil), pero para ejecutarlo también necesitas descargar esto: https://github.com/nilaoda/N_m3u8DL-RE/releases y esto https://github.com/shaka-project/shaka-packager/releases
- No estoy seguro de que realmente necesites lo de la extensión widevine, el comando de https://larley.dev/Page/Fastevo parece funcionar directamente.
Hice un pequeño script de tampermonkey para sacar el data-token, porque darkfans es molesto con lo de abrir el inspector:
Código:
// ==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);
})();
 
Funcionó. Gracias por el script. Me costaba un montón encontrar el token.
Parte del contenido por el que Darkfans es famoso está prohibido aquí.
¿Alguno sabe si al menos podemos usar los DM para compartirlo en privado?
 
Ahora lo dejé muy simple. Solo hay que descargar esto: https://github.com/nilaoda/N_m3u8DL-RE/releases y esto https://github.com/shaka-project/shaka-packager/releases, añadir ambos al PATH, luego instalar mi script de tampermonkey Y ejecutar mi script de Powershell. Después es un clic y se descarga solo.
Código:
// ==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);
})();
Código:
# 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
}
 
¿Tienes Discord o algo así para que me ayudes a guiarme con esto? Hice todo, excepto que cuando le doy al botón de la extensión de Tampermonkey, no pasa nada
 
Atrás
Arriba