import-log: youtube-sassy-the-sasquatch 2026-05-08 — eps 1-5 (ep6 age-restricted)
This commit is contained in:
parent
6a54cae82e
commit
cdf415c862
2 changed files with 189 additions and 0 deletions
147
docs/IMPORT-LOG/2026-05-08-youtube-sassy-the-sasquatch.md
Normal file
147
docs/IMPORT-LOG/2026-05-08-youtube-sassy-the-sasquatch.md
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
# 2026-05-08 — YouTube import: Sassy the Sasquatch (2022)
|
||||
|
||||
## Source
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Upstream platform | YouTube |
|
||||
| Channel name | THE BIG LEZ SHOW OFFICIAL |
|
||||
| Channel id | `UCV1G6JkQtB2nobFm3MGNsBQ` |
|
||||
| Playlist title | `SASSY THE SASQUATCH` |
|
||||
| Playlist id | `PLGMC7oz7XpmDMGrALMQiNXCi9p7aqkWbj` |
|
||||
| Playlist URL | `youtube.com/playlist?list=PLGMC7oz7XpmDMGrALMQiNXCi9p7aqkWbj` (no clickable link by policy) |
|
||||
|
||||
## Date imported
|
||||
|
||||
`2026-05-08`
|
||||
|
||||
## Episodes imported
|
||||
|
||||
| # | YouTube id | YouTube title | Canonical filename | Jellyfin episode id | Resolution | Size (bytes) |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1 | `9OmR0ypCyOU` | `SASSY THE SASQUATCH \| EP01 \| SEEN A DINOSAUR` | `Sassy the Sasquatch (2022)/Season 01/Sassy the Sasquatch (2022) - S01E01 - Seen a Dinosaur.mkv` | `2ef02448506b543f39b9372c2b0cdef2` | 1920x1080 | 36,434,608 |
|
||||
| 2 | `tvCUmH92HfU` | `SASSY THE SASQUATCH \| EP02 \| WATER YOU TALKINABEET` | `Sassy the Sasquatch (2022)/Season 01/Sassy the Sasquatch (2022) - S01E02 - Water You Talkinabeet.mkv` | `3b7809d6840e5ee230fbba951fee227e` | 1920x1080 | 28,928,772 |
|
||||
| 3 | `QvIgmc2G6lk` | `SASSY THE SASQUATCH \| EP03 \| WALKABEET` | `Sassy the Sasquatch (2022)/Season 01/Sassy the Sasquatch (2022) - S01E03 - Walkabeet.mkv` | `4a0188c67c1d6d08000997177143d6f2` | 1920x1080 | 22,663,417 |
|
||||
| 4 | `RU9zuIqPcJw` | `SASSY THE SASQUATCH \| EP04 \| AREA 51` | `Sassy the Sasquatch (2022)/Season 01/Sassy the Sasquatch (2022) - S01E04 - Area 51.mkv` | `3dc35c7341f4476e6218840dceb63163` | 1920x1080 | 30,784,810 |
|
||||
| 5 | `vUyJq1kd-bc` | `SASSY THE SASQUATCH \| EP05 \| SNOW WORRIES` | `Sassy the Sasquatch (2022)/Season 01/Sassy the Sasquatch (2022) - S01E05 - Snow Worries.mkv` | `f79032d3bfbed6371e11375bdfc1b8a6` | 1920x1080 | 36,913,187 |
|
||||
| 6 | `bi_HbwZDdPg` | `SASSY THE SASQUATCH \| EP06 \| AS ABOING SO BADOING` | _(not imported)_ | _(n/a)_ | _(n/a)_ | 0 |
|
||||
|
||||
**Imported: 5 / 6.** EP06 is age-restricted on YouTube and the sibling
|
||||
downloader had no authenticated cookie store — see Known caveats.
|
||||
|
||||
## Naming rules applied
|
||||
|
||||
Cited section numbers refer to files under `docs/`:
|
||||
|
||||
- **`docs/05` §0 rule 5 — mandatory `(Year)`.** Year `2022` (from manifest)
|
||||
appended to the show folder and every episode basename, even though the
|
||||
show name is unique in the library.
|
||||
- **`docs/05` §2 + `docs/08` §1.2 — TV canonical layout.** Final layout is
|
||||
`Show (Year)/Season NN/Show (Year) - SxxEyy - Title.ext`. Applied
|
||||
literally across all 5 episodes.
|
||||
- **`docs/05` §2.1 + `docs/08` §4.2 — zero-padded `Season 01`.** All five
|
||||
files placed under `Season 01/` (single-playlist → single-season default).
|
||||
- **`docs/08` §1.2 — zero-padded two-digit episode marker.** `S01E01`
|
||||
through `S01E05`, never `S1E1` / `1x01` / `Ep1`.
|
||||
- **`docs/08` §2.1 + §3.4 — strip channel-pollution prefix and
|
||||
bracket/id tags.** The repeated `SASSY_THE_SASQUATCH_`, the `EPxx_`
|
||||
fragment, and the `[<videoId>]` suffix in raw filenames were all
|
||||
removed; only the human-readable episode title survives in the
|
||||
canonical name.
|
||||
- **`docs/08` §2.5 — underscores → spaces.** `WATER_YOU_TALKINABEET` →
|
||||
`Water You Talkinabeet`; `AREA_51` → `Area 51`; `SEEN_A_DINOSAUR` →
|
||||
`Seen a Dinosaur`; `SNOW_WORRIES` → `Snow Worries`; `WALKABEET` left
|
||||
as a single word.
|
||||
- **`docs/08` §5.1 — smart title case.** All-uppercase YouTube titles
|
||||
recased; small word `a` lowercased mid-title (`Seen a Dinosaur`); the
|
||||
number `51` preserved as-is (`Area 51`).
|
||||
- **`docs/05` §0 rule 3 / `docs/08` §5.5 — ASCII-only, no forbidden
|
||||
characters.** Source titles contained no `< > : " / \ | ? *`, so no
|
||||
substitutions were needed; verified post-rename.
|
||||
- **`docs/08` §1.1 / §1.2 forbidden list — no resolution/codec/group
|
||||
tags.** `1080p`, `av01`, `opus`, `WEB-DL`, etc. all stripped; canonical
|
||||
names contain title only.
|
||||
|
||||
## rsync stats
|
||||
|
||||
```
|
||||
sent 155,763,373 bytes
|
||||
received 126 bytes
|
||||
throughput 44,503,856 bytes/sec (~42.4 MiB/s)
|
||||
total size 155,724,794 bytes
|
||||
speedup 1.00 (initial transfer, no rolling-checksum reuse)
|
||||
flags -av --partial --append-verify
|
||||
files 5 transferred + 2 dirs created
|
||||
```
|
||||
|
||||
## Jellyfin verification
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Series id | `b2d1afd8a4a30c59adb42ccaf47376c2` |
|
||||
| Series name | `Sassy the Sasquatch` |
|
||||
| ProductionYear | `2022` |
|
||||
| Path | `/media/tv/Sassy the Sasquatch (2022)` |
|
||||
| Provider ids | `Tmdb=321760 Imdb=tt21209936 Tvdb=421839` |
|
||||
| Episode count | 5 |
|
||||
| Direct-play (E01 sample) | `SupportsDirectPlay=True`, `SupportsDirectStream=True`, `SupportsTranscoding=False`, video `av1` profile Main, audio `opus` |
|
||||
| Library scan | `RefreshLibrary` reached `Idle / Completed` < 10 s after `POST /Library/Refresh`; full series refresh queued via `POST /Items/.../Refresh?Recursive=true&MetadataRefreshMode=FullRefresh&ImageRefreshMode=FullRefresh` (HTTP 204) |
|
||||
|
||||
All 5 episodes mapped to correct `SxxEyy` via filename → Jellyfin parser
|
||||
(no manual identify required).
|
||||
|
||||
## Known caveats
|
||||
|
||||
1. **EP06 age-restricted, not imported.** YouTube requires authenticated
|
||||
cookies for `bi_HbwZDdPg` (`AS ABOING SO BADOING`); sibling downloader
|
||||
ran without a logged-in browser session. Library currently shows
|
||||
5/6 episodes. Operator's call whether to retry with cookies or
|
||||
accept the gap.
|
||||
2. **Jellyfin display titles uppercase.** TVDB has the official episode
|
||||
titles entered in all-caps (`SEEN A DINOSAUR`, etc.) and Jellyfin
|
||||
prefers provider data over filename-derived titles. Filenames on disk
|
||||
remain canonical-cased per `docs/08` §5.1; only the API/UI display
|
||||
layer follows TVDB. Not a bug.
|
||||
3. **No subtitles.** Source has YouTube auto-generated captions only;
|
||||
sibling did not pull them, so no `.srt` / `.ass` siblings exist in
|
||||
the library.
|
||||
4. **Cross-device hard-link failure during staging.** Sibling's first
|
||||
staging attempt at `/tmp/yt-norm/staged/` failed (`/tmp` is `tmpfs`,
|
||||
source is on LUKS+ext4); re-staged at `/home/admin/yt-norm-staged/`
|
||||
on the same FS. Net disk impact: zero (inode-only links). Cosmetic.
|
||||
5. **Brief said "6 episodes," manifest had 6 with 1 failed.** Reconciled
|
||||
to actual 5 successful downloads; counts in this log reflect reality,
|
||||
not the brief.
|
||||
|
||||
## Source manifest copied
|
||||
|
||||
Top-level fields of `manifest.json` (sibling agent's output, originally at
|
||||
`/home/admin/yt-import-staging/manifest.json` on onyx):
|
||||
|
||||
```json
|
||||
{
|
||||
"show_name": "Sassy the Sasquatch",
|
||||
"year": "2022",
|
||||
"channel": "THE BIG LEZ SHOW OFFICIAL",
|
||||
"channel_id": "UCV1G6JkQtB2nobFm3MGNsBQ",
|
||||
"playlist_id": "PLGMC7oz7XpmDMGrALMQiNXCi9p7aqkWbj",
|
||||
"playlist_title": "SASSY THE SASQUATCH",
|
||||
"raw_dir": "/home/admin/yt-import-staging/raw",
|
||||
"downloaded_count": 5,
|
||||
"failed_count": 1,
|
||||
"total_bytes": 155724794
|
||||
}
|
||||
```
|
||||
|
||||
The full per-episode `episodes[]` array is **not** embedded here. Trace
|
||||
each episode by canonical path under the live tree on nullstone:
|
||||
|
||||
```
|
||||
/home/user/media/tv/Sassy the Sasquatch (2022)/
|
||||
└── Season 01/
|
||||
├── Sassy the Sasquatch (2022) - S01E01 - Seen a Dinosaur.mkv
|
||||
├── Sassy the Sasquatch (2022) - S01E02 - Water You Talkinabeet.mkv
|
||||
├── Sassy the Sasquatch (2022) - S01E03 - Walkabeet.mkv
|
||||
├── Sassy the Sasquatch (2022) - S01E04 - Area 51.mkv
|
||||
└── Sassy the Sasquatch (2022) - S01E05 - Snow Worries.mkv
|
||||
```
|
||||
42
docs/IMPORT-LOG/README.md
Normal file
42
docs/IMPORT-LOG/README.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# IMPORT-LOG
|
||||
|
||||
Append-only ledger of media-import events for ARRFLIX. Each file in this
|
||||
directory documents a single import operation so future audits can trace
|
||||
content on disk back to its provenance.
|
||||
|
||||
## Convention
|
||||
|
||||
- **One file per import event.**
|
||||
- **Filename format:** `YYYY-MM-DD-<source>-<show-slug>.md`
|
||||
- `<source>` is the upstream type (`youtube`, `tvdb-rip`, `bluray`, `manual`, etc.).
|
||||
- `<show-slug>` is the lowercase show name with `-` separators.
|
||||
- Example: `2026-05-08-youtube-sassy-the-sasquatch.md`.
|
||||
- **Date** is the day the import landed on the live library (not the day the
|
||||
source was published).
|
||||
|
||||
## Required sections
|
||||
|
||||
Each entry should include:
|
||||
|
||||
1. **Source** — upstream URL/handle, channel/distributor, identifiers.
|
||||
2. **Date imported** — ISO-8601.
|
||||
3. **Episodes imported** — table mapping source identifier → canonical
|
||||
filename → Jellyfin item id (resolution + size where applicable).
|
||||
4. **Naming rules applied** — citations of the `docs/0X.md` rule numbers
|
||||
invoked, with a short note on the specific edit each made.
|
||||
5. **rsync stats** — `sent / received / speedup` from the transfer.
|
||||
6. **Jellyfin verification** — series id, episode count, direct-play status.
|
||||
7. **Known caveats** — anything that wasn't perfect (missing metadata,
|
||||
failed thumbnails, age-restricted episodes, etc.).
|
||||
8. **Source manifest copied** — top-level fields of the operator's
|
||||
`manifest.json`. Do **not** embed the full `episodes[]` array — link to
|
||||
the canonical files in the live library instead.
|
||||
|
||||
## Boundaries
|
||||
|
||||
- **No access tokens, API keys, or session cookies** in any log file.
|
||||
- For YouTube imports, **do not include full video URLs** — record the bare
|
||||
`videoId` only, so import logs are not indexable as a re-distribution
|
||||
pointer.
|
||||
- Logs are **immutable once committed**. To correct a mistake, append a
|
||||
follow-up entry rather than rewriting history.
|
||||
Loading…
Reference in a new issue