yt-briefing 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -16
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# yt-briefing
|
|
2
2
|
|
|
3
3
|
Save hours on YouTube. yt-briefing watches the channels you follow so you don't have to. For
|
|
4
|
-
each new video it
|
|
4
|
+
each new video it gives you a short briefing in your own language — every point that matters, with
|
|
5
5
|
only the filler cut, so nothing important is lost. Reading it takes a fraction of the time the
|
|
6
6
|
video would, so you stay on top of everything and only watch what's actually worth it.
|
|
7
7
|
|
|
8
|
-
It also gets better the more you use it. You give each
|
|
8
|
+
It also gets better the more you use it. You give each summary a quick rating, worth my time
|
|
9
9
|
or not, and from that it learns what to keep showing you and what to drop. Over time the queue
|
|
10
10
|
becomes yours: less noise, more of what you care about.
|
|
11
11
|
|
|
@@ -55,9 +55,9 @@ YT_BRIEFING_LLM_MODEL=gemini-2.5-flash
|
|
|
55
55
|
YT_BRIEFING_YOUTUBE_API_KEY=<key> # console.cloud.google.com → enable "YouTube Data API v3"
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
Any OpenAI-compatible endpoint works — see [Providers](#providers) to use OpenRouter, OpenAI,
|
|
59
|
-
local Ollama instead of Gemini.
|
|
60
|
-
|
|
58
|
+
Any OpenAI-compatible endpoint works — see [Providers](#providers) to use OpenRouter, OpenAI,
|
|
59
|
+
Anthropic, or a local Ollama instead of Gemini. `YT_BRIEFING_PROXY` (datacenter/VPS IPs) is the
|
|
60
|
+
only optional extra.
|
|
61
61
|
|
|
62
62
|
4. Onboard:
|
|
63
63
|
|
|
@@ -77,30 +77,39 @@ npx yt-briefing list # show the current l
|
|
|
77
77
|
|
|
78
78
|
## One-off: transcribe a single video
|
|
79
79
|
|
|
80
|
-
Just want one video
|
|
80
|
+
Just want one video summarized — no channels, no queue, no rating? Run `/yt-transcribe` and
|
|
81
81
|
paste a URL or video ID. It pulls that video's transcript and writes a journalist-grade
|
|
82
|
-
|
|
82
|
+
summary in the language you chose at setup (the same `output_lang` as `/yt`). Want a one-off in
|
|
83
83
|
another language? Just say so when you run it (e.g. `/yt-transcribe <url> in German`) — it
|
|
84
84
|
won't change your setup. `--lang pl|en` is separate — it picks which caption track to fetch,
|
|
85
|
-
not the language
|
|
85
|
+
not the summary language.
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
For example:
|
|
88
88
|
|
|
89
|
-
```
|
|
90
|
-
|
|
89
|
+
```
|
|
90
|
+
/yt-transcribe https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
## Search within a channel
|
|
94
94
|
|
|
95
95
|
Mine one channel's videos for a topic and get a comparison. Run `/yt-search` with a channel and
|
|
96
|
-
an intent —
|
|
96
|
+
an intent — for example:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
/yt-search @betterstack which terminal for AI coding
|
|
100
|
+
```
|
|
97
101
|
|
|
98
102
|
It covers the channel's **whole history** (not just recent uploads), re-ranks every upload against
|
|
99
103
|
your intent, then lazily yields one matching video at a time to keep or skip — and synthesizes a
|
|
100
104
|
comparison from everything you kept.
|
|
101
105
|
|
|
102
106
|
The one flag is `--top N` — how many of the top re-ranked matches to triage (**default 10**). Raise
|
|
103
|
-
it to go deeper, lower it for a quicker pass:
|
|
107
|
+
it to go deeper, lower it for a quicker pass:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
/yt-search @betterstack which terminal
|
|
111
|
+
/yt-search @betterstack which terminal --top 5
|
|
112
|
+
```
|
|
104
113
|
|
|
105
114
|
## Run it
|
|
106
115
|
|
|
@@ -123,16 +132,17 @@ YT_BRIEFING_LLM_MODEL=gemini-2.5-flash
|
|
|
123
132
|
> or switch to a paid key (enable billing, same model) to avoid it.
|
|
124
133
|
|
|
125
134
|
Want something else? Change those three lines for OpenRouter (`https://openrouter.ai/api/v1`),
|
|
126
|
-
OpenAI (`https://api.openai.com/v1`),
|
|
135
|
+
OpenAI (`https://api.openai.com/v1`), Anthropic (`https://api.anthropic.com/v1/`,
|
|
136
|
+
e.g. `claude-sonnet-4-6`), or a local Ollama (`http://localhost:11434/v1`). Set
|
|
127
137
|
`YT_BRIEFING_LLM_BASE_URL`, `_API_KEY`, and `_MODEL` in your root `.env` (see [Setup](#setup)).
|
|
128
138
|
|
|
129
139
|
## Why an API, not the agent's native model
|
|
130
140
|
|
|
131
|
-
The filtering and the
|
|
141
|
+
The filtering and the summaries go through a plain OpenAI-compatible API call from the engine,
|
|
132
142
|
not through the coding agent's own model. Two reasons.
|
|
133
143
|
|
|
134
144
|
Speed. The engine works ahead in the background. It expands channels in parallel and starts
|
|
135
|
-
|
|
145
|
+
summarizing the next video while you rate the current one, so the following step is usually
|
|
136
146
|
ready with no wait. An agent's turn-by-turn loop cannot prefetch like that, and every step pays
|
|
137
147
|
its own cold start, which adds up across a whole queue.
|
|
138
148
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yt-briefing",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "A self-learning YouTube briefing engine: it sweeps the channels you follow, filters noise in two stages (title, then transcript), summarizes the rest in your language, and adapts to your ratings — one video at a time.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|