Skip to content
daggerokPublic

Latest commit

 

History

49 Commits

Folders and files

Repository files navigation

youtube

Note editing

Double-click a video's Name cell in the desktop table (or press the ✏️ button in the Note column) to edit its note inline. Double-clicking the note text drops the caret exactly where you clicked; opening from the ✏️ button (or when the note is empty) puts the caret at the end (the start when there is no text). Opening the editor never scrolls the page: the row stays exactly where you double-clicked it, even for notes taller than the window. Enter saves, Shift+Enter adds a new line, Esc cancels, and clicking away saves. Changes sync to Google Sheets when connected.

prerequisites

jq -r '."Google YouTube Data API v3 API Key youtube"' google.json | pbcopy

Full Refresh

Full Refresh rebuilds the list from the channel's videos and keeps every row that is not a channel video (hand-added https, http or non-YouTube links): the channel list comes first, then those rows in their old order with status and note unchanged, and the result is written back to the sheet. A row of a channel video, matched by video id (also in youtu.be, shorts or live form), keeps its status and note and is not duplicated; http:// and non-YouTube rows are matched by exact url

Column filters

All desktop and mobile column filters use the same case-insensitive syntax:

  • 2022*Mentorship or 2022&Mentorship: match 2022 followed by Mentorship, with any text (or none) between them.
  • 2022|Mentorship: match either phrase.
  • 2022 Mentorship|2016 Mentorship|2017 Mentorship: match any of these exact phrases (ignoring case).
  • 2022*Mentorship&Live|2016*Mentorship: combine any number of operators. AND (*, &) binds more tightly than OR (|).

Spaces are literal, including spaces next to operators; they are not trimmed or treated as AND. Do not wrap queries in quotes. AND terms must occur in order, without overlapping. Empty operands are ignored while typing; an empty or operators-only filter imposes no restriction. Operators are reserved characters, with no escaping or parentheses syntax. Filters on different columns must all match.

Tests

node --test tests/*.test.js