getscript 0.12.0__py3-none-any.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.
@@ -0,0 +1,125 @@
1
+ Metadata-Version: 2.4
2
+ Name: getscript
3
+ Version: 0.12.0
4
+ Summary: Fast, Unix-friendly CLI for fetching transcripts from YouTube and Apple Podcasts
5
+ Author: Voxly
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/outerbanks73/cli-tools
8
+ Project-URL: Documentation, https://voxlytranscribes.com/docs/getscript
9
+ Project-URL: Repository, https://github.com/outerbanks73/cli-tools
10
+ Project-URL: Issues, https://github.com/outerbanks73/cli-tools/issues
11
+ Keywords: transcript,youtube,podcast,apple-podcasts,cli
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Multimedia :: Sound/Audio
22
+ Classifier: Topic :: Utilities
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: youtube-transcript-api>=1.0.0
27
+ Requires-Dist: requests>=2.28.0
28
+ Requires-Dist: defusedxml>=0.7.1
29
+ Dynamic: license-file
30
+
31
+ # getscript
32
+
33
+ A fast, Unix-friendly CLI for fetching transcripts from YouTube and Apple Podcasts.
34
+
35
+ ## Install
36
+
37
+ ```bash
38
+ pip install .
39
+ ```
40
+
41
+ Requires Python 3.10+.
42
+
43
+ **Apple Podcasts** transcripts additionally require macOS 15.5+ with Xcode CLI tools.
44
+
45
+ ## Usage
46
+
47
+ ```bash
48
+ # Fetch from URL
49
+ getscript "https://youtube.com/watch?v=VIDEO_ID"
50
+ getscript "https://podcasts.apple.com/...?i=EPISODE_ID"
51
+
52
+ # Fetch from bare ID
53
+ getscript dQw4w9WgXcQ # YouTube (11-char ID)
54
+ getscript 1000753754819 # Apple (numeric ID)
55
+
56
+ # Output formats
57
+ getscript VIDEO_ID --json | jq .
58
+ getscript VIDEO_ID --markdown > notes.md
59
+ getscript VIDEO_ID --timestamps
60
+ getscript EPISODE_ID --ttml # raw TTML XML (Apple only)
61
+
62
+ # Write to file
63
+ getscript VIDEO_ID -o transcript.txt
64
+
65
+ # Search & pick interactively (requires fzf)
66
+ getscript --search "topic keywords"
67
+ getscript --search "topic" --apple
68
+ getscript --search "topic" --list # print results, no fzf
69
+ getscript --search "topic" --limit 20
70
+
71
+ # YouTube auth options
72
+ getscript VIDEO_ID --proxy socks5://127.0.0.1:1080
73
+ getscript VIDEO_ID --cookies ~/cookies.txt
74
+
75
+ # Transcripts are automatically indexed at voxlytranscribes.com
76
+ # To disable:
77
+ getscript VIDEO_ID --no-upload
78
+ GETSCRIPT_UPLOAD=0 getscript VIDEO_ID
79
+
80
+ # Shell completions
81
+ getscript --completions bash >> ~/.bashrc
82
+ getscript --completions zsh >> ~/.zshrc
83
+ getscript --completions fish > ~/.config/fish/completions/getscript.fish
84
+ ```
85
+
86
+ ## Configuration
87
+
88
+ Config file: `~/.config/getscript/config.json`
89
+
90
+ ```json
91
+ {
92
+ "youtube_api_key": "YOUR_KEY",
93
+ "output_format": "text",
94
+ "timestamps": false,
95
+ "search_limit": 10,
96
+ "no_upload": false
97
+ }
98
+ ```
99
+
100
+ Environment variables:
101
+ - `GETSCRIPT_YOUTUBE_API_KEY` — YouTube Data API v3 key (required for `--search`)
102
+ - `GETSCRIPT_PROXY` — proxy URL for YouTube requests
103
+ - `GETSCRIPT_COOKIE_FILE` — Netscape cookie file for YouTube auth
104
+ - `GETSCRIPT_UPLOAD` — set to `0` to disable automatic shared library indexing
105
+ - `GETSCRIPT_SUPABASE_URL` — custom Supabase URL (for development)
106
+ - `GETSCRIPT_SUPABASE_ANON_KEY` — custom Supabase anon key (for development)
107
+ - `NO_COLOR` — disable colors
108
+
109
+ Priority: config file < environment variables < CLI flags.
110
+
111
+ ## How it works
112
+
113
+ **YouTube:** Wraps [youtube-transcript-api](https://github.com/jdepoix/youtube-transcript-api) with proxy and cookie support.
114
+
115
+ **Apple Podcasts:** Compiles a small Obj-C helper that uses Apple's private AMSMescal framework (FairPlay) to obtain a bearer token, then fetches TTML transcripts from the AMP API. The token is cached for 30 days at `~/.cache/getscript/apple_token`.
116
+
117
+ ## Dependencies
118
+
119
+ - `youtube-transcript-api` — YouTube transcript fetching
120
+ - `requests` — HTTP sessions for cookie-based auth
121
+ - `fzf` (optional, system binary) — interactive search result selection
122
+
123
+ ## License
124
+
125
+ MIT
@@ -0,0 +1,18 @@
1
+ getscript/__init__.py,sha256=X2DFrIRqj_Fm0_g7o-6I2Lc4AaSP4ppDhWqRH22mLb0,213
2
+ getscript/apple.py,sha256=F-a2yeWN7MfYx150iSaQ1UrF6sVOvbAa9d0ENQmeCII,9522
3
+ getscript/cli.py,sha256=ecwKrXuALV0Yz4u8CB_bZ2_YSVg8dD1rWYdOJV9Nn5U,11738
4
+ getscript/completions.py,sha256=H-QBQMfnBXwK8sXBqBvgjQ36Zl1-AoqJYr3V9Ewazb8,3052
5
+ getscript/config.py,sha256=iuvC2qE9skMXrVsNISFR10DufUENv8aGOar093UYMZ0,2084
6
+ getscript/detect.py,sha256=xtqeSz1-aKqJmALO07cAJ6qBlK9gMGOnDSq6sLvN3d0,1786
7
+ getscript/output.py,sha256=gHbcfhBeDGeeFLc5qKuTq-EHs_uvU4MebQAgVquu_KQ,2628
8
+ getscript/picker.py,sha256=-I6wK2oh54Wcbi-508nAPXHxeMsK72LNAPF_ZD_jz5M,1851
9
+ getscript/progress.py,sha256=ZTF-KnipnULd58v4QKF1xt_NKMyCHWZthfg2E3AOZSI,974
10
+ getscript/search.py,sha256=CNUkhQ_IaG9ZP1gPWJGjEmrg09ZjfwNTSDXLurmH1Hk,2536
11
+ getscript/upload.py,sha256=NYR70b68c5N2yGoLrUiuBCVkpXuwyazpffTfHSWNYCg,4172
12
+ getscript/youtube.py,sha256=5RNrcp-bMO0pn7hbA_CFUPcV4xH5UG-u8LYstdJk_jY,1777
13
+ getscript-0.12.0.dist-info/licenses/LICENSE,sha256=CoZlvAfv_mmtFA54JMbE3w2u8Cni28sMh753jm6h_us,1062
14
+ getscript-0.12.0.dist-info/METADATA,sha256=i_tRoReoIoNYnpFIi3_DIfdObJRDwQFpj6w_f1niims,4031
15
+ getscript-0.12.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
16
+ getscript-0.12.0.dist-info/entry_points.txt,sha256=vLclcSOUEw_s-uC5NNNc_KwQkblBJj41a97ssappfP4,49
17
+ getscript-0.12.0.dist-info/top_level.txt,sha256=yHBYpEvg2hKjVr_e1l2UIgnTp-xmfGxDne4SNYAqNP0,10
18
+ getscript-0.12.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ getscript = getscript.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Voxly
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ getscript