Skip to content
Closed

/ #5

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
692d3a1
Remove intro skip workflow
FieteGM Feb 4, 2026
05e8f32
Add optional intro fingerprint skipping
FieteGM Feb 4, 2026
3c1b6d3
Add per-series intro skip settings
FieteGM Feb 4, 2026
c400974
Add MP3 picker for intro fingerprints
FieteGM Feb 4, 2026
53b3c21
Check and install fpcalc for uploads
FieteGM Feb 4, 2026
20fde71
Keep start_watching.bat open on errors
FieteGM Feb 4, 2026
738775d
Log startup errors to file
FieteGM Feb 4, 2026
d1c283a
Keep cmd open during startup
FieteGM Feb 4, 2026
f51f544
Fix missing_modules check in batch
FieteGM Feb 4, 2026
27a371b
Fix Tor wait loop syntax
FieteGM Feb 4, 2026
d275e97
Trim missing module list
FieteGM Feb 4, 2026
abc7c5f
Remove not wording from startup logs
FieteGM Feb 5, 2026
ed3a583
Quote startup logs and remove shell relaunch
FieteGM Feb 5, 2026
6e1784e
Improve Chromaprint install diagnostics in startup script
FieteGM Feb 5, 2026
957cf32
Remove fpcalc auto-install attempts from startup script
FieteGM Feb 5, 2026
65bbe47
Fix live end-skip update handling blocks
FieteGM Feb 5, 2026
dbdd3dc
Add intro fingerprint timeout fallback skip
FieteGM Feb 5, 2026
fc21f9b
Add automatic runtime fingerprint probe for video source
FieteGM Feb 5, 2026
5dc6eb2
Add intro listening debug logs and relax fingerprint matching
FieteGM Feb 5, 2026
1fc084c
Log intro listening start conditions and skip reasons
FieteGM Feb 5, 2026
adefe5c
Allow intro listening on near-zero resume positions
FieteGM Feb 5, 2026
a799f31
Wait for video source before intro fingerprint probe
FieteGM Feb 7, 2026
31d8d02
Fallback to duration skip when fingerprint probe fails
FieteGM Feb 7, 2026
2e5116e
Wait for video context before intro fingerprint probe
FieteGM Feb 7, 2026
913670a
Ensure video context before reading currentTime for intro skip
FieteGM Feb 9, 2026
355473a
Skip fpcalc probe for non-audio video sources
FieteGM Feb 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 35 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# BingeWatcher

Automated binge-watching helper for **s.to** and **aniworld.to** with progress
tracking, intro/end skipping, and a modern sidebar UI for quick navigation.
tracking, end-screen skipping, and a modern sidebar UI for quick navigation.

> **Strict disclaimer**: I do **not** support, endorse, or encourage the use of
> this script. It is published **for educational review only**. Do **not** use
Expand All @@ -15,7 +15,7 @@ tracking, intro/end skipping, and a modern sidebar UI for quick navigation.
- **Multi-provider support**: s.to and aniworld.to with automatic provider
detection.
- **Progress tracking**: resume by series/season/episode with saved timestamps.
- **Smart intro skip**: per-series intro start/end times.
- **Optional intro skip**: fingerprint-configured per season.
- **End screen skip**: jump past credits/outro if configured.
- **Auto fullscreen**: multiple fallback strategies for stubborn players.
- **Sidebar UI**: search, sort, quick actions, and settings panel.
Expand Down Expand Up @@ -66,7 +66,6 @@ The script will:
| --- | --- | --- |
| `BW_HEADLESS` | `false` | Run Firefox headless (`true/false`). |
| `BW_START_URL` | `https://s.to/` | Start URL (provider homepage). |
| `BW_INTRO_SKIP` | `80` | Default intro skip (seconds). |
| `BW_MAX_RETRIES` | `3` | Navigation retry count. |
| `BW_WAIT_TIMEOUT` | `25` | Page load wait timeout. |
| `BW_PROGRESS_INTERVAL` | `5` | Progress save interval (seconds). |
Expand All @@ -81,28 +80,56 @@ Important keys:

- `useTorProxy` (boolean)
- `autoFullscreen` (boolean)
- `autoSkipIntro` (boolean)
- `autoSkipEndScreen` (boolean)
- `autoNext` (boolean)
- `playbackRate` (number)
- `volume` (number, `0.0`–`1.0`)

### Intro fingerprints (optional)

To enable intro skipping per season, create `intro_fingerprints.json` with keys
like `<series>_s<season>`, for example `one_piece_s07`:

```json
{
"one_piece_s07": {
"fingerprint": "A_LONG_FP_STRING",
"fingerprintDuration": 10,
"fullIntroDurationSeconds": 145
}
}
```

If `fingerprint` is omitted but `fullIntroDurationSeconds` is present, the
player will skip the first N seconds at the start of the episode. If a
fingerprint is present, an external matcher can signal a match by writing the
matched key into `localStorage` as `bw_intro_fp_match`. You can also edit these
values per series/season from the in-app “Skip Settings” panel.

To generate a fingerprint without editing JSON, drop your MP3 into
`SerienJunkie/intro_uploads/`, open the per-series “Skip Settings” panel, and
select the file in the “Select MP3 (intro_uploads)” picker. The app will
generate the fingerprint, save it into `intro_fingerprints.json`, and delete the
MP3 after processing.

## Data Files

- `progress.json`: persisted progress by series.
- `intro_times.json`: optional default intro windows by season.
- `intro_fingerprints.json`: optional intro fingerprint configuration.
- `settings.json`: app settings.

## Sidebar Highlights

- **Series list** with last watched time.
- **Provider tabs** to filter s.to vs. aniworld.to.
- **Per-series controls** for intro and end skip windows.
- **Per-series controls** for intro duration/fingerprint and end skip windows.
- **Quick actions**: skip episode, open settings, quit.

## Troubleshooting

- **GeckoDriver not found**: Ensure `geckodriver.exe` sits next to `s.toBot.py`.
- **Chromaprint (fpcalc) missing**: Install Chromaprint so the MP3 fingerprint
generator can run (`fpcalc` must be on PATH).
- **Video not playing**: Refresh the page or press Space to play.
- **Sidebar missing**: Reload; some pages block injection until fully loaded.

Expand All @@ -115,7 +142,8 @@ SerienJunkie/
├── README.md # This file
├── geckodriver.exe # Firefox WebDriver
├── progress.json # Progress database (auto-created)
├── intro_times.json # Optional intro presets
├── intro_fingerprints.json # Optional intro fingerprint data
├── intro_uploads/ # Optional MP3 drop folder
└── user.BingeWatcher/ # Firefox profile (auto-created)
```

Expand Down
179 changes: 0 additions & 179 deletions SerienJunkie/README_INTRO_DETECTION.md

This file was deleted.

7 changes: 7 additions & 0 deletions SerienJunkie/intro_fingerprints.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"one_piece_s07": {
"fingerprint": "A_LONG_FP_STRING",
"fingerprintDuration": 10,
"fullIntroDurationSeconds": 145
}
}
Loading