# Ask for model name $model = Read-Host "NickName" # Output folder $outputFolder = "C:\download" $waiting_time = 5 #seconds if (!(Test-Path $outputFolder)) { New-Item -ItemType Directory -Path $outputFolder | Out-Null } # Prompt for stream quality if interactive #$inputQuality = Read-Host "Enter stream quality (best, 720p, 480p, etc.) or press Enter for default [$quality]" #if (-not [string]::IsNullOrWhiteSpace($inputQuality)) { # $quality = $inputQuality #} # Desired stream quality $quality = "best" while ($true) { Clear-Host # Request video context from Chaturbate $urlContext = "https://chaturbate.com/api/chatvideocontext/$model/" try { $response = Invoke-RestMethod -Uri $urlContext -Method Get } catch { Write-Host "ERROR: Failed to connect to Chaturbate API. Retrying in 5 seconds..." Start-Sleep -Seconds 5 continue } # Check if stream is online if ($response.room_status -eq "public" -and $response.hls_source) { Write-Host "Status: ONLINE" Write-Host "Original HLS URL: $($response.hls_source)" # Fix the HLS URL $streamUrl = $response.hls_source ` -replace "live-hls", "live-c-fhls" ` -replace "playlist.m3u8", "playlist_sfm4s.m3u8" $timestamp = Get-Date -Format "yyyy-MM-dd-HH-mm-ss" $outputFile = Join-Path $outputFolder "$model-$timestamp.ts" Write-Host "Starting streamlink..." streamlink $streamUrl $quality -o $outputFile Write-Host "Recording saved to: $outputFile" # Optional: Exit or continue monitoring break # or remove this line to keep monitoring after recording } else { Write-Host "$model is OFFLINE wait $waiting_time seconds" -NoNewline Start-Sleep -seconds $waiting_time } }
# ============ CONFIGURATION ============ # Uncomment and set fixed model name if needed; otherwise the script will prompt for it. # $model = "modelname_here" # Default quality if User-Agent input is skipped $quality = "best" # API mirror domain (choose the one that works for you) $mirrorDomain = "https://www.chaturbate-ru.com" #$mirrorDomain = "https://www.chaturbate.md" # =========== START SCRIPT ============== # Prompt for model if not predefined if (-not $model) { $model = Read-Host "NickName" } # Prompt for stream quality if interactive #$inputQuality = Read-Host "Enter stream quality (best, 720p, 480p, etc.) or press Enter for default [$quality]" #if (-not [string]::IsNullOrWhiteSpace($inputQuality)) { # $quality = $inputQuality #} $quality = "best" $waiting_time = 5 #seconds # Build API request URL using mirror $urlContext = "$mirrorDomain/api/chatvideocontext/$model/" # Additional headers (may be required for some mirrors) $headers = @{ "User-Agent" = "Mozilla/5.0" "Referer" = "$mirrorDomain/$model" } while ($true) { Clear-Host try { $response = Invoke-RestMethod -Uri $urlContext -Method Get -Headers $headers } catch { Write-Host "ERROR: Could not connect to mirror API." -ForegroundColor Red exit } if ($response.room_status -eq "public" -and $response.hls_source) { Write-Host "STATUS: ONLINE" Write-Host "Original HLS URL: $($response.hls_source)" # Fix HLS URL for streamlink compatibility $streamUrl = $response.hls_source ` -replace "live-hls", "live-c-fhls" ` -replace "playlist.m3u8", "playlist_sfm4s.m3u8" # Output folder setup $outputFolder = "C:\download" if (-not (Test-Path $outputFolder)) { New-Item -ItemType Directory -Path $outputFolder | Out-Null } # Generate filename with dashed date-time $timestamp = Get-Date -Format "yyyy-MM-dd-HH-mm-ss" $outputFile = Join-Path $outputFolder "$model-$timestamp.ts" Write-Host "Starting streamlink with quality: $quality" streamlink $streamUrl $quality -o $outputFile Write-Host "RECORDING SAVED TO: $outputFile" } else { Write-Host "$model is OFFLINE wait $waiting_time seconds" -NoNewline Start-Sleep -seconds $waiting_time } }
# Ask for model name $model = Read-Host "NickName" # Output folder $outputFolder = "C:\download" $waiting_time = 5 # seconds if (!(Test-Path $outputFolder)) { New-Item -ItemType Directory -Path $outputFolder | Out-Null } # Desired stream quality $quality = "best" while ($true) { Clear-Host # Request video context from Chaturbate $urlContext = "https://chaturbate.com/api/chatvideocontext/$model/" try { $response = Invoke-RestMethod -Uri $urlContext -Method Get } catch { Write-Host "ERROR: Failed to connect to Chaturbate API. Retrying in 5 seconds..." Start-Sleep -Seconds 5 continue } # Check if stream is online if ($response.room_status -eq "public" -and $response.hls_source) { Write-Host "Status: ONLINE" Write-Host "Original HLS URL: $($response.hls_source)" # Fix the HLS URL $streamUrl = $response.hls_source ` -replace "live-hls", "live-c-fhls" ` -replace "playlist.m3u8", "playlist_sfm4s.m3u8" $timestamp = Get-Date -Format "yyyy-MM-dd-HH-mm-ss" $outputFile = Join-Path $outputFolder "$model-$timestamp.ts" Write-Host "Starting streamlink..." streamlink $streamUrl $quality -o $outputFile Write-Host "Recording saved to: $outputFile" # После окончания записи подождать 10 секунд и продолжить мониторинг Write-Host "Waiting 10 seconds before next check..." Start-Sleep -Seconds 10 } else { Write-Host "$model is OFFLINE. Waiting $waiting_time seconds..." Start-Sleep -Seconds $waiting_time } }
Вчера, 19:37
Вчера, 17:59
Вчера, 08:54
Вчера, 02:47
Вчера, 01:02
6 марта 2026 22:43
6 марта 2026 11:33
6 марта 2026 11:24
6 марта 2026 11:19
6 марта 2026 00:12
5 марта 2026 17:31
5 марта 2026 13:39
5 марта 2026 10:25
5 марта 2026 05:46
25 февраля 2026 18:39
19 февраля 2026 20:48
16 февраля 2026 15:27
14 февраля 2026 16:33
5 февраля 2026 01:07
3 февраля 2026 18:18
20 января 2026 21:11
20 января 2026 16:37
20 января 2026 10:47
19 января 2026 00:38
15 января 2026 22:17
15 января 2026 18:49
14 января 2026 02:49
12 января 2026 23:18
4 января 2026 09:47
3 января 2026 14:32
30 декабря 2025 03:05
26 декабря 2025 21:29
22 декабря 2025 21:38
13 декабря 2025 14:51
11 декабря 2025 19:56
4 декабря 2025 03:37
3 декабря 2025 16:48
2 декабря 2025 15:12
1 декабря 2025 12:23
30 ноября 2025 03:07
28 ноября 2025 14:44
27 ноября 2025 08:24
25 ноября 2025 11:09
25 ноября 2025 10:53