Question Darkfans Téléchargement

yardlight8

Lurker
Inscrit
1 Nov 2025
Messages
18
Réactions
0
Y a-t-il un outil pour rip les vidéos de darkfans ? J'ai cherché un moment et les méthodes que j'ai trouvées ne marchent plus
 
j'ai essayé avec ceux que j'ai achetés et ça a marché, donc je pense que oui
 
Video Download Helper et Internet Download Manager ne marchent actuellement pas pour les posts du mur avec DRM.
 
je parlais des vidéos payantes que j'ai achetées, évidemment qu'on ne peut pas rip celles qu'on n'a pas achetées
 
Je confirme aussi que YT Saver ne marche pas, alors que ça marchait pour moi sur les achats onlyfans avec DRM.
 
si, c'est possible avec TubeDigger en RecMode/Monitor Browser, c'est la seule option pour l'instant
 
y a-t-il des options qui marchent pour le DRM ? J'ai essayé toutes les options listées, même TubeDigger avec licence, et toujours pas de chance.
 
J'ai suivi ce post et ça a marché :
https://simpcityopen.com/posts/2239604/
Quelques notes :
- Quand tu ouvres l'inspecteur d'éléments, ce qu'il faut chercher c'est data-token
- Après avoir collé ça dans https://larley.dev/Page/Fastevo, tu obtiens une commande que tu peux copier et lancer (je l'ai mise dans un fichier .bat pour faire simple), mais pour la lancer il faut aussi télécharger ça : https://github.com/nilaoda/N_m3u8DL-RE/releases et ça https://github.com/shaka-project/shaka-packager/releases
- Je ne suis pas sûr qu'on ait vraiment besoin du truc d'extension widevine, la commande de https://larley.dev/Page/Fastevo a l'air de marcher directement.
J'ai fait un petit script tampermonkey pour récupérer le data-token, vu que darkfans est chiant quand on ouvre l'inspecteur :
Code:
// ==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);
})();
 
Ça a marché. Merci pour le script. J'avais du mal à trouver le token.
Une partie du contenu pour lequel Darkfans est connu est interdite ici.
Quelqu'un sait si on a au moins le droit d'utiliser les DM pour le partager en privé ?
 
Je l'ai rendu super simple maintenant. Il suffit de télécharger ça : https://github.com/nilaoda/N_m3u8DL-RE/releases et ça https://github.com/shaka-project/shaka-packager/releases, d'ajouter les deux au PATH, puis d'installer mon script tampermonkey ET de lancer mon script Powershell. Ensuite, un clic et ça télécharge tout seul.
Code:
// ==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);
})();
Code:
# 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
}
 
T'as Discord ou un truc du genre pour m'aider à passer par toutes les étapes ? J'ai tout fait, sauf que quand je clique sur le bouton de l'extension Tampermonkey, il se passe rien
 
Retour
Haut