notepipe 0.1.0__py3-none-win_amd64.whl
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.
|
Binary file
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: notepipe
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Requires-Dist: notepipe-asr-llama ; extra == 'llama'
|
|
5
|
+
Requires-Dist: notepipe-asr-meta ; extra == 'meta'
|
|
6
|
+
Requires-Dist: notepipe-asr-openvino ; extra == 'openvino'
|
|
7
|
+
Requires-Dist: notepipe-asr-speech-swift ; extra == 'speech-swift'
|
|
8
|
+
Requires-Dist: notepipe-asr-xai ; extra == 'xai'
|
|
9
|
+
Requires-Dist: notepipe-source-ytdlp ; extra == 'ytdlp'
|
|
10
|
+
Provides-Extra: llama
|
|
11
|
+
Provides-Extra: meta
|
|
12
|
+
Provides-Extra: openvino
|
|
13
|
+
Provides-Extra: speech-swift
|
|
14
|
+
Provides-Extra: xai
|
|
15
|
+
Provides-Extra: ytdlp
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Summary: Extensible engine and CLI that turns video and audio into Markdown notes
|
|
18
|
+
License-Expression: MIT
|
|
19
|
+
Requires-Python: >=3.9
|
|
20
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
21
|
+
Project-URL: Homepage, https://github.com/3ae3ae/notepipe
|
|
22
|
+
Project-URL: Issues, https://github.com/3ae3ae/notepipe/issues
|
|
23
|
+
Project-URL: Repository, https://github.com/3ae3ae/notepipe
|
|
24
|
+
|
|
25
|
+
<h1 align="center">
|
|
26
|
+
<picture>
|
|
27
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/3ae3ae/notepipe/main/docs/wordmark-dark.svg">
|
|
28
|
+
<img src="https://raw.githubusercontent.com/3ae3ae/notepipe/main/docs/wordmark-light.svg" alt="notepipe" width="360">
|
|
29
|
+
</picture>
|
|
30
|
+
</h1>
|
|
31
|
+
|
|
32
|
+
<p align="center">
|
|
33
|
+
<strong>Turn video and audio into Markdown notes.</strong><br>
|
|
34
|
+
The transcript in readable paragraphs, arranged around screenshots of what was on screen,<br>
|
|
35
|
+
optionally proofread, summarized or extended by the AI model of your choice.
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
<p align="center">
|
|
39
|
+
<a href="https://github.com/3ae3ae/notepipe/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/3ae3ae/notepipe/actions/workflows/ci.yml/badge.svg"></a>
|
|
40
|
+
<a href="https://pypi.org/project/notepipe/"><img alt="PyPI" src="https://img.shields.io/pypi/v/notepipe"></a>
|
|
41
|
+
<a href="https://crates.io/crates/notepipe"><img alt="crates.io" src="https://img.shields.io/crates/v/notepipe"></a>
|
|
42
|
+
<a href="https://github.com/3ae3ae/notepipe/blob/main/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
|
|
43
|
+
</p>
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
notepipe lecture.mp4
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
---
|
|
51
|
+
title: "Introduction to Compilers"
|
|
52
|
+
source: "https://www.youtube.com/watch?v=…"
|
|
53
|
+
author: "Example University"
|
|
54
|
+
duration: "1:12:40"
|
|
55
|
+
created: "2026-10-21T09:30:00Z"
|
|
56
|
+
generator: "notepipe 0.1.0"
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
# Introduction to Compilers
|
|
60
|
+
|
|
61
|
+
## Overview
|
|
62
|
+
A compiler translates a program in stages, from characters to tokens, trees and finally machine code.
|
|
63
|
+
|
|
64
|
+
## [03:12](https://www.youtube.com/watch?v=…&t=192s)
|
|
65
|
+
|
|
66
|
+

|
|
67
|
+
|
|
68
|
+
The first stage is lexical analysis. The scanner reads characters and groups them into tokens such as identifiers,
|
|
69
|
+
numbers and operators.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
notepipe works on lectures, talks, meetings and podcasts. It is a dependable command-line tool on its own, and a
|
|
73
|
+
component that other programs can build on.
|
|
74
|
+
|
|
75
|
+
## Why notepipe
|
|
76
|
+
|
|
77
|
+
- **Extensible without forking.** Websites, local speech engines and vendor APIs are *adapters*: small separate programs
|
|
78
|
+
with a documented contract, written in any language, installed as extras and attached with one line of configuration.
|
|
79
|
+
What the AI does is a prompt you write. A hook runs your own program after each note.
|
|
80
|
+
- **Portable.** A single binary for Linux and macOS on x86_64 and arm64 and for Windows on x86_64, and it builds on
|
|
81
|
+
Android through Termux. Its only requirement is ffmpeg. Speech recognition and AI go through OpenAI-compatible APIs, so any provider, a server of your
|
|
82
|
+
own or a local engine will do; no account, vendor or model is built in.
|
|
83
|
+
- **Reliable.** A note is built completely before it replaces the previous one, so a failed or interrupted run never
|
|
84
|
+
leaves a half-written or lost note. Finished work is cached: downloads, screenshots, transcripts and AI responses are
|
|
85
|
+
reused, and an interrupted transcription resumes where it stopped. Ctrl-C stops every process notepipe started. Every
|
|
86
|
+
code change is tested in CI on Linux, macOS and Windows.
|
|
87
|
+
- **Plain, durable output.** Markdown, JPEG and JSON in an ordinary folder, readable by any editor, notes app or script.
|
|
88
|
+
- **Private.** No telemetry. Audio and text go only to the services you configure, or nowhere at all with local
|
|
89
|
+
adapters.
|
|
90
|
+
|
|
91
|
+
[docs/design.md](https://github.com/3ae3ae/notepipe/blob/main/docs/design.md) describes the design and the principles behind it.
|
|
92
|
+
|
|
93
|
+
## Contents
|
|
94
|
+
|
|
95
|
+
[Installation](#installation) · [Quick start](#quick-start) · [Configuration](#configuration) ·
|
|
96
|
+
[Speech recognition](#speech-recognition) · [AI stages and prompts](#ai-stages-and-prompts) · [Adapters](#adapters) ·
|
|
97
|
+
[The note](#the-note) · [Using notepipe from other programs](#using-notepipe-from-other-programs) ·
|
|
98
|
+
[Acknowledgements](#acknowledgements)
|
|
99
|
+
|
|
100
|
+
## Installation
|
|
101
|
+
|
|
102
|
+
notepipe needs [ffmpeg](https://ffmpeg.org/download.html) on your `PATH` (`brew install ffmpeg`, `sudo apt install
|
|
103
|
+
ffmpeg`, `winget install ffmpeg`, or `pkg install ffmpeg` in Termux).
|
|
104
|
+
|
|
105
|
+
Install it with [uv](https://docs.astral.sh/uv/), choosing the extras for what you need:
|
|
106
|
+
|
|
107
|
+
| You want notes from | Install |
|
|
108
|
+
|---|---|
|
|
109
|
+
| local video and audio files | `uv tool install notepipe` |
|
|
110
|
+
| … and URLs (YouTube and the other sites yt-dlp supports) | `uv tool install "notepipe[ytdlp]"` |
|
|
111
|
+
| … with local speech recognition through llama.cpp | `uv tool install "notepipe[llama]"` |
|
|
112
|
+
| … with local speech recognition on an Intel NPU, CPU or GPU | `uv tool install "notepipe[openvino]"` |
|
|
113
|
+
| … with local speech recognition on Apple silicon | `uv tool install "notepipe[speech-swift]"` |
|
|
114
|
+
| … with xAI speech-to-text | `uv tool install "notepipe[xai]"` |
|
|
115
|
+
| … with Meta speech-to-text | `uv tool install "notepipe[meta]"` |
|
|
116
|
+
| any combination | `uv tool install "notepipe[ytdlp,llama]"` |
|
|
117
|
+
|
|
118
|
+
Running `uv tool install` again replaces the installation, including its extras and `--with` packages, so list
|
|
119
|
+
everything you want each time; `uv tool list --show-extras --show-with` shows the current set. pip and pipx accept the
|
|
120
|
+
same extras.
|
|
121
|
+
|
|
122
|
+
Other ways to install:
|
|
123
|
+
|
|
124
|
+
- **Cargo:** `cargo install notepipe` installs the CLI; add adapters with pip or uv.
|
|
125
|
+
- **Prebuilt binaries:** every [GitHub release](https://github.com/3ae3ae/notepipe/releases) has binaries and
|
|
126
|
+
checksums for Linux, macOS and Windows.
|
|
127
|
+
- **Android:** in [Termux](https://termux.dev), run `pkg install rust ffmpeg python`, then `cargo install notepipe`;
|
|
128
|
+
add adapters with `pip install notepipe-source-ytdlp` and the like.
|
|
129
|
+
|
|
130
|
+
| Platform | Architectures | Install with | Tested |
|
|
131
|
+
|---|---|---|---|
|
|
132
|
+
| Linux | x86_64, arm64 | uv, pip, pipx, Cargo, binary | in CI (x86_64) and containers (arm64) |
|
|
133
|
+
| macOS | arm64, x86_64 | uv, pip, pipx, Cargo, binary | in CI (arm64) |
|
|
134
|
+
| Windows | x86_64 | uv, pip, pipx, Cargo, binary | in CI |
|
|
135
|
+
| Android (Termux) | arm64 | Cargo, pip | in a Termux container |
|
|
136
|
+
|
|
137
|
+
## Quick start
|
|
138
|
+
|
|
139
|
+
```sh
|
|
140
|
+
notepipe lecture.mp4 # writes ./<title>/note.md
|
|
141
|
+
notepipe interview.m4a -o ~/notes # audio works too; notes go under ~/notes
|
|
142
|
+
notepipe talk.mp4 --subtitle talk.srt # use a transcript you already have
|
|
143
|
+
notepipe https://youtu.be/VIDEO_ID # a URL, with notepipe[ytdlp]
|
|
144
|
+
notepipe lecture.mp4 --stages summary # add an AI summary at the top
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Subtitles are used when they exist: `lecture.srt` or `lecture.vtt` next to the file, or those of the video at the URL.
|
|
148
|
+
Otherwise speech is transcribed; the first run in a terminal asks which speech service to use and saves the answer.
|
|
149
|
+
`notepipe doctor` checks your setup, and `notepipe --help` explains every option.
|
|
150
|
+
|
|
151
|
+
## Configuration
|
|
152
|
+
|
|
153
|
+
```sh
|
|
154
|
+
notepipe config init # create the configuration file, with every setting explained in comments
|
|
155
|
+
notepipe config path # print where it is
|
|
156
|
+
notepipe config show # show the settings in effect
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
The file is `~/.config/notepipe/config.toml`, or `%APPDATA%\notepipe\config.toml` on Windows (`$XDG_CONFIG_HOME/notepipe/`
|
|
160
|
+
when that is set). Its sections follow the order in which a note is made, and every command-line option names the
|
|
161
|
+
setting it overrides:
|
|
162
|
+
|
|
163
|
+
```toml
|
|
164
|
+
[output]
|
|
165
|
+
dir = "~/notes"
|
|
166
|
+
|
|
167
|
+
[transcript]
|
|
168
|
+
language = "ko" # empty: detect
|
|
169
|
+
|
|
170
|
+
[speech] # used when there are no subtitles
|
|
171
|
+
base_url = "https://api.openai.com/v1"
|
|
172
|
+
model = "gpt-4o-mini-transcribe"
|
|
173
|
+
|
|
174
|
+
[screenshots]
|
|
175
|
+
mode = "stable" # wait for animated slides to settle
|
|
176
|
+
|
|
177
|
+
[ai] # shared by every AI stage
|
|
178
|
+
base_url = "https://api.openai.com/v1"
|
|
179
|
+
model = "gpt-5.6-luna"
|
|
180
|
+
|
|
181
|
+
[[ai.stages]] # stages run in this order
|
|
182
|
+
name = "proofread"
|
|
183
|
+
|
|
184
|
+
[[ai.stages]]
|
|
185
|
+
name = "summary"
|
|
186
|
+
model = "gpt-5.6-terra" # a stage can use its own model, service, key or prompt
|
|
187
|
+
request = { reasoning_effort = "medium" }
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
API keys can stay out of the file: `NOTEPIPE_SPEECH_API_KEY` and `NOTEPIPE_AI_API_KEY` are used when it has none.
|
|
191
|
+
[docs/configuration.md](https://github.com/3ae3ae/notepipe/blob/main/docs/configuration.md) lists every setting.
|
|
192
|
+
|
|
193
|
+
## Speech recognition
|
|
194
|
+
|
|
195
|
+
Speech is located on your machine, cut into short segments and sent to the service in `[speech]`.
|
|
196
|
+
|
|
197
|
+
| Service | `[speech]` settings |
|
|
198
|
+
|---|---|
|
|
199
|
+
| OpenAI | `base_url = "https://api.openai.com/v1"`, `model = "gpt-4o-mini-transcribe"` |
|
|
200
|
+
| Groq | `base_url = "https://api.groq.com/openai/v1"`, `model = "whisper-large-v3-turbo"` |
|
|
201
|
+
| Mistral | `base_url = "https://api.mistral.ai/v1"`, `model = "voxtral-mini-latest"` |
|
|
202
|
+
| Audio-capable chat models | `api = "chat"` with the provider's `base_url` and `model` |
|
|
203
|
+
| Any OpenAI-compatible server you run | its `base_url` |
|
|
204
|
+
| xAI, Meta | the [`xai`](#xai--xai-speech-to-text) or [`meta`](#meta--meta-speech-to-text) adapter |
|
|
205
|
+
| llama.cpp, Intel NPU, Apple silicon (on your machine) | the [`llama`](#llama--llamacpp), [`openvino`](#openvino--intel-npu-cpu-or-gpu) or [`speech-swift`](#speech-swift--apple-silicon) adapter |
|
|
206
|
+
|
|
207
|
+
## AI stages and prompts
|
|
208
|
+
|
|
209
|
+
An AI stage sends the note to an OpenAI-compatible chat model with a prompt, and puts the answer back into the note.
|
|
210
|
+
It reads either each paragraph or the whole transcript, and writes in place of each paragraph, below it, or at the top
|
|
211
|
+
of the note. Stages run in the order you list them, each with its own model if you like.
|
|
212
|
+
|
|
213
|
+
Two stages are built in: `proofread` corrects recognition errors and removes filler, and `summary` adds an overview, key
|
|
214
|
+
points and a timed outline. **Every prompt is yours to change.** Give a built-in stage your own prompt:
|
|
215
|
+
|
|
216
|
+
```toml
|
|
217
|
+
[[ai.stages]]
|
|
218
|
+
name = "summary"
|
|
219
|
+
prompt = "Summarize this lecture for a student who missed it: the main argument, each new term with its definition, and what to review."
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
or write a stage of your own in a few lines:
|
|
223
|
+
|
|
224
|
+
```toml
|
|
225
|
+
[[ai.stages]]
|
|
226
|
+
name = "translate"
|
|
227
|
+
input = "paragraphs" # each paragraph …
|
|
228
|
+
output = "below" # … gets the model's answer underneath
|
|
229
|
+
prompt = "Translate each item into Korean. Keep names, code and formulas unchanged."
|
|
230
|
+
|
|
231
|
+
[[ai.stages]]
|
|
232
|
+
name = "action-items"
|
|
233
|
+
input = "transcript" # the whole transcript …
|
|
234
|
+
output = "top" # … and the answer at the top of the note
|
|
235
|
+
prompt = "List the decisions and action items in this meeting as a Markdown checklist, with owners where named."
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
`--stages translate,summary` picks stages for one run, `--no-stages` skips them, and `--proofread-prompt` replaces the
|
|
239
|
+
proofread prompt once. Any OpenAI-compatible chat service works, including OpenAI, Anthropic
|
|
240
|
+
(`https://api.anthropic.com/v1`), Google Gemini (`https://generativelanguage.googleapis.com/v1beta/openai`), OpenRouter,
|
|
241
|
+
Groq, and local servers such as Ollama (`http://localhost:11434/v1`) or LM Studio. Anything else, such as the OpenAI
|
|
242
|
+
Responses API or access through a subscription, connects through an [AI adapter](https://github.com/3ae3ae/notepipe/blob/main/docs/adapters.md#ai-adapters).
|
|
243
|
+
|
|
244
|
+
## Adapters
|
|
245
|
+
|
|
246
|
+
Adapters connect notepipe to things it does not do itself: downloading from websites, and speech engines or AI services
|
|
247
|
+
that are not OpenAI-compatible. Each is a separate package with a small program that notepipe starts when needed. The
|
|
248
|
+
official adapters are extras of the `notepipe` package; install several at once with `uv tool install
|
|
249
|
+
"notepipe[ytdlp,llama]"`.
|
|
250
|
+
|
|
251
|
+
### `ytdlp` — URLs
|
|
252
|
+
|
|
253
|
+
Downloads from YouTube and the other sites [yt-dlp](https://github.com/yt-dlp/yt-dlp) supports, with the video's
|
|
254
|
+
subtitles and details. It honors your yt-dlp configuration and is used for URLs as soon as it is installed.
|
|
255
|
+
|
|
256
|
+
```sh
|
|
257
|
+
uv tool install "notepipe[ytdlp]"
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### `llama` — llama.cpp
|
|
261
|
+
|
|
262
|
+
Runs a speech model such as Qwen3-ASR with [llama.cpp](https://github.com/ggml-org/llama.cpp)'s `llama-server`, on a
|
|
263
|
+
CPU or GPU. Requires `llama-server`.
|
|
264
|
+
|
|
265
|
+
```sh
|
|
266
|
+
uv tool install "notepipe[llama]"
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
```toml
|
|
270
|
+
[speech]
|
|
271
|
+
adapter = ["notepipe-asr-llama", "-hf", "ggml-org/Qwen3-ASR-1.7B-GGUF:Q8_0"]
|
|
272
|
+
concurrency = 1
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### `openvino` — Intel NPU, CPU or GPU
|
|
276
|
+
|
|
277
|
+
Runs Qwen3-ASR or Whisper with [OpenVINO](https://github.com/openvinotoolkit/openvino.genai), on an Intel NPU by
|
|
278
|
+
default.
|
|
279
|
+
|
|
280
|
+
```sh
|
|
281
|
+
uv tool install "notepipe[openvino]"
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
```toml
|
|
285
|
+
[speech]
|
|
286
|
+
adapter = ["notepipe-asr-openvino"] # add "--device", "CPU" (or "GPU") to choose the device
|
|
287
|
+
concurrency = 1
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### `speech-swift` — Apple silicon
|
|
291
|
+
|
|
292
|
+
Runs Qwen3-ASR on MLX, or Qwen3-ASR 0.6B and Whisper on Core ML, with
|
|
293
|
+
[speech-swift](https://github.com/soniqo/speech-swift). macOS 15 or later on Apple silicon. Built in CI; not yet verified
|
|
294
|
+
on hardware.
|
|
295
|
+
|
|
296
|
+
```sh
|
|
297
|
+
uv tool install "notepipe[speech-swift]"
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
```toml
|
|
301
|
+
[speech]
|
|
302
|
+
adapter = ["notepipe-asr-speech-swift"]
|
|
303
|
+
concurrency = 1
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### `xai` — xAI speech-to-text
|
|
307
|
+
|
|
308
|
+
Connects notepipe to [xAI's speech-to-text API](https://docs.x.ai/developers/model-capabilities/audio/speech-to-text).
|
|
309
|
+
|
|
310
|
+
```sh
|
|
311
|
+
uv tool install "notepipe[xai]"
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
```toml
|
|
315
|
+
[speech]
|
|
316
|
+
adapter = ["notepipe-asr-xai"]
|
|
317
|
+
model = "grok-voice-transcribe-2.0" # the key comes from api_key or NOTEPIPE_SPEECH_API_KEY
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### `meta` — Meta speech-to-text
|
|
321
|
+
|
|
322
|
+
Connects notepipe to [Meta's speech-to-text API](https://dev.meta.ai/docs/speech-to-text).
|
|
323
|
+
|
|
324
|
+
```sh
|
|
325
|
+
uv tool install "notepipe[meta]"
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
```toml
|
|
329
|
+
[speech]
|
|
330
|
+
adapter = ["notepipe-asr-meta"]
|
|
331
|
+
model = "muse-voice-transcribe-1.0" # the key comes from api_key or NOTEPIPE_SPEECH_API_KEY
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Your own
|
|
335
|
+
|
|
336
|
+
An adapter is any program that follows a short contract, so it can be written in any language; a complete example in
|
|
337
|
+
Python takes a few dozen lines. [docs/adapters.md](https://github.com/3ae3ae/notepipe/blob/main/docs/adapters.md) describes all three kinds: speech, AI and download.
|
|
338
|
+
Install one next to notepipe with `uv tool install notepipe --with <package>`, or put it on your `PATH`.
|
|
339
|
+
|
|
340
|
+
## The note
|
|
341
|
+
|
|
342
|
+
Each note is a folder named after the title:
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
Introduction to Compilers/
|
|
346
|
+
├── note.md Markdown with YAML front matter
|
|
347
|
+
├── note.json the same content as data
|
|
348
|
+
└── images/ 0001.jpg, 0002.jpg, …
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
A later run on the same recording replaces its folder; a different recording with the same title gets a `-2`, `-3`, …
|
|
352
|
+
suffix, and a recording whose title has changed gets a folder for its new title. Each section's time links to the recording, at that moment where the source allows it.
|
|
353
|
+
|
|
354
|
+
## Using notepipe from other programs
|
|
355
|
+
|
|
356
|
+
The command line is notepipe's integration interface. Pass settings on standard input and read progress as JSON lines:
|
|
357
|
+
|
|
358
|
+
```sh
|
|
359
|
+
notepipe "$SOURCE" -o "$OUT" --config - --json < config.toml
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
[docs/cli.md](https://github.com/3ae3ae/notepipe/blob/main/docs/cli.md) documents the events, exit codes, `note.json`, caching, and the completion hook that runs your
|
|
363
|
+
own program after each note is written.
|
|
364
|
+
|
|
365
|
+
## Project status
|
|
366
|
+
|
|
367
|
+
notepipe is young (0.x). The configuration format, the command-line interface and `note.json` may still change; every
|
|
368
|
+
change is recorded in the [changelog](https://github.com/3ae3ae/notepipe/blob/main/CHANGELOG.md).
|
|
369
|
+
|
|
370
|
+
## Contributing
|
|
371
|
+
|
|
372
|
+
Issues and pull requests are welcome; [CONTRIBUTING.md](https://github.com/3ae3ae/notepipe/blob/main/CONTRIBUTING.md) explains how to build, test and propose a
|
|
373
|
+
change. Please report security problems privately, as described in [SECURITY.md](https://github.com/3ae3ae/notepipe/blob/main/SECURITY.md).
|
|
374
|
+
|
|
375
|
+
## Acknowledgements
|
|
376
|
+
|
|
377
|
+
notepipe began as a fork of **[course2md](https://github.com/mizorewww/course2md)** by
|
|
378
|
+
[mizorewww](https://github.com/mizorewww). course2md showed how useful slide-illustrated notes made from recordings can
|
|
379
|
+
be, and notepipe still stands on its foundations: the screenshot detection, subtitle handling and timeline alignment at
|
|
380
|
+
the heart of notepipe were adapted from it. Thank you to mizorewww and to everyone who
|
|
381
|
+
[contributed to course2md](https://github.com/mizorewww/course2md/graphs/contributors). If you are looking for a desktop
|
|
382
|
+
app with a notes library, course2md is the place to go.
|
|
383
|
+
|
|
384
|
+
course2md's screenshot detection follows [yt-slide-mark](https://github.com/exopoiesis/yt-slide-mark) by exopoiesis.
|
|
385
|
+
notepipe is also built on [FFmpeg](https://ffmpeg.org), [earshot](https://crates.io/crates/earshot) for speech
|
|
386
|
+
detection, and, through its adapters, [yt-dlp](https://github.com/yt-dlp/yt-dlp),
|
|
387
|
+
[llama.cpp](https://github.com/ggml-org/llama.cpp), [OpenVINO](https://github.com/openvinotoolkit/openvino.genai) and
|
|
388
|
+
[speech-swift](https://github.com/soniqo/speech-swift).
|
|
389
|
+
|
|
390
|
+
## License
|
|
391
|
+
|
|
392
|
+
notepipe is released under the [MIT License](https://github.com/3ae3ae/notepipe/blob/main/LICENSE), which keeps course2md's copyright notice alongside notepipe's
|
|
393
|
+
own.
|
|
394
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
notepipe-0.1.0.data/scripts/notepipe.exe,sha256=5LyjX5Z-wXqUHSUzQn5RkGO4ets4Efb8rhjphl-n6gk,7106048
|
|
2
|
+
notepipe-0.1.0.dist-info/METADATA,sha256=ZerCJ0gsKcaRgqEgG1-W032g6bw8ze1wxj5bksVMgWQ,17748
|
|
3
|
+
notepipe-0.1.0.dist-info/WHEEL,sha256=8Aej0W0a6Cz6apA3IzJrTnxLRVLAt-w0Oh8SA3Con_c,94
|
|
4
|
+
notepipe-0.1.0.dist-info/licenses/LICENSE,sha256=UHbFQlIefs29aZ72RpcdxsA-tQBuihFGuSoHc1Ms24M,1114
|
|
5
|
+
notepipe-0.1.0.dist-info/sboms/notepipe.cyclonedx.json,sha256=HOI3gTbyoHjP031Uoblfv8CcJwKH5Lt3tbi8YRQ38ok,183193
|
|
6
|
+
notepipe-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 mizorewww
|
|
4
|
+
Copyright (c) 2026 3ae3ae
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|