# 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 } }
Сегодня, 11:00
Вчера, 21:16
Вчера, 20:47
Вчера, 14:29
Вчера, 08:51
Вчера, 08:03
24 июня 2026 19:41
24 июня 2026 14:12
24 июня 2026 09:08
24 июня 2026 09:07
23 июня 2026 20:56
23 июня 2026 18:41
23 июня 2026 08:09
22 июня 2026 00:23
14 июня 2026 09:59
10 июня 2026 16:15
31 мая 2026 23:34
31 мая 2026 16:13
30 мая 2026 10:33
29 мая 2026 18:20
29 мая 2026 16:17
28 мая 2026 19:27
27 мая 2026 23:14
27 мая 2026 21:35
24 мая 2026 23:08
24 мая 2026 20:57
15 мая 2026 07:53
15 мая 2026 00:43
14 мая 2026 17:33
14 мая 2026 17:32
7 мая 2026 00:36
21 апреля 2026 00:16
13 апреля 2026 00:13
12 апреля 2026 23:28
11 апреля 2026 23:09
4 апреля 2026 16:11
4 апреля 2026 10:24
25 марта 2026 11:17
25 марта 2026 10:46
24 марта 2026 18:14
5 марта 2026 04:50
25 февраля 2026 18:39
19 февраля 2026 20:48
16 февраля 2026 15:27