coursera-transcripts 0.1.2__tar.gz → 0.1.3__tar.gz
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.
- {coursera_transcripts-0.1.2/src/coursera_transcripts.egg-info → coursera_transcripts-0.1.3}/PKG-INFO +150 -150
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/pyproject.toml +4 -1
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/setup.cfg +4 -4
- coursera_transcripts-0.1.3/src/coursera_transcripts/__init__.py +1 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts/cli.py +1 -1
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3/src/coursera_transcripts.egg-info}/PKG-INFO +150 -150
- coursera_transcripts-0.1.2/src/coursera_transcripts/__init__.py +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/LICENSE +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/README.md +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts/api.py +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts/downloader.py +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts.egg-info/SOURCES.txt +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts.egg-info/dependency_links.txt +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts.egg-info/entry_points.txt +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts.egg-info/requires.txt +0 -0
- {coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts.egg-info/top_level.txt +0 -0
{coursera_transcripts-0.1.2/src/coursera_transcripts.egg-info → coursera_transcripts-0.1.3}/PKG-INFO
RENAMED
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: coursera-transcripts
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary: CLI tool to extract Coursera course transcripts/subtitles
|
|
5
|
-
Author-email: Kavin <your-email@example.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Classifier: Programming Language :: Python :: 3
|
|
8
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
-
Classifier: Operating System :: OS Independent
|
|
13
|
-
Classifier: Environment :: Console
|
|
14
|
-
Requires-Python: >=3.10
|
|
15
|
-
Description-Content-Type: text/markdown
|
|
16
|
-
License-File: LICENSE
|
|
17
|
-
Requires-Dist: requests>=2.31.0
|
|
18
|
-
Requires-Dist: rich>=13.0.0
|
|
19
|
-
Dynamic: license-file
|
|
20
|
-
|
|
21
|
-
# 📚 Coursera Transcript Generator
|
|
22
|
-
|
|
23
|
-
A beautiful CLI tool to bulk-download transcripts and subtitles from any Coursera course you're enrolled in.
|
|
24
|
-
|
|
25
|
-

|
|
26
|
-
|
|
27
|
-

|
|
28
|
-

|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## ✨ Features
|
|
33
|
-
|
|
34
|
-
- **Interactive prompts** — guided step-by-step experience, no need to memorize flags
|
|
35
|
-
- **Bulk download** — grabs every lecture transcript in a course at once
|
|
36
|
-
- **Organized output** — files are neatly sorted into module folders
|
|
37
|
-
- **Progress tracking** — real-time progress bar with download status
|
|
38
|
-
- **Retry logic** — automatic retries with exponential backoff on failures
|
|
39
|
-
- **Multiple formats** — supports both `.txt` (plain text) and `.srt` (subtitle) formats
|
|
40
|
-
- **Multi-language** — download transcripts in any available language
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## 📦 Installation
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
# Clone the repo
|
|
48
|
-
git clone https://github.com/your-username/coursera-transcript-generator.git
|
|
49
|
-
cd coursera-transcript-generator
|
|
50
|
-
|
|
51
|
-
# Install in editable mode
|
|
52
|
-
pip install -e .
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## 🚀 Usage
|
|
58
|
-
|
|
59
|
-
### Interactive Mode (recommended)
|
|
60
|
-
|
|
61
|
-
Just run the command with no arguments — it will guide you through everything:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
coursera-transcripts
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
You'll be prompted for:
|
|
68
|
-
|
|
69
|
-
1. **CAUTH cookie** — your Coursera authentication token
|
|
70
|
-
2. **Course slug** — the identifier from the course URL
|
|
71
|
-
3. **Options** — language, format, and output directory
|
|
72
|
-
|
|
73
|
-
### CLI Mode
|
|
74
|
-
|
|
75
|
-
Pass everything as flags for scripting / automation:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
coursera-transcripts \
|
|
79
|
-
--cookie "YOUR_CAUTH_VALUE" \
|
|
80
|
-
--slug "machine-learning" \
|
|
81
|
-
--language en \
|
|
82
|
-
--format txt \
|
|
83
|
-
--output ./transcripts
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### All Options
|
|
87
|
-
|
|
88
|
-
| Flag | Short | Default | Description |
|
|
89
|
-
| ------------ | ----- | ------------ | ------------------------------ |
|
|
90
|
-
| `--cookie` | `-c` | _(prompted)_ | CAUTH cookie value |
|
|
91
|
-
| `--slug` | `-s` | _(prompted)_ | Course slug from URL |
|
|
92
|
-
| `--language` | `-l` | `en` | Subtitle language code |
|
|
93
|
-
| `--format` | | `txt` | Output format (`txt` or `srt`) |
|
|
94
|
-
| `--output` | `-o` | `./output` | Parent output directory |
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## 🔑 Getting Your CAUTH Cookie
|
|
99
|
-
|
|
100
|
-
1. Open [coursera.org](https://www.coursera.org) and **log in**
|
|
101
|
-
2. Open **DevTools** (`F12` or `Ctrl+Shift+I`)
|
|
102
|
-
3. Go to **Application** → **Cookies** → `https://www.coursera.org`
|
|
103
|
-
4. Find the cookie named **`CAUTH`**
|
|
104
|
-
5. Copy its **Value**
|
|
105
|
-
|
|
106
|
-
> [!IMPORTANT]
|
|
107
|
-
> You must be **enrolled** in the course to download its transcripts.
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 📁 Output Structure
|
|
112
|
-
|
|
113
|
-
Transcripts are organized by module:
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
output/
|
|
117
|
-
└── machine-learning/
|
|
118
|
-
├── introduction-to-ml/
|
|
119
|
-
│ ├── Welcome to Machine Learning.txt
|
|
120
|
-
│ ├── What is Machine Learning.txt
|
|
121
|
-
│ └── Supervised Learning.txt
|
|
122
|
-
├── linear-regression/
|
|
123
|
-
│ ├── Model Representation.txt
|
|
124
|
-
│ └── Cost Function.txt
|
|
125
|
-
└── ...
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## 🔧 Finding the Course Slug
|
|
131
|
-
|
|
132
|
-
The slug is the part of the URL after `/learn/`:
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
https://www.coursera.org/learn/machine-learning
|
|
136
|
-
└── this is the slug
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## 📋 Requirements
|
|
142
|
-
|
|
143
|
-
- Python **3.10+**
|
|
144
|
-
- A Coursera account with enrollment in the target course
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## 📄 License
|
|
149
|
-
|
|
150
|
-
MIT
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: coursera-transcripts
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: CLI tool to extract Coursera course transcripts/subtitles
|
|
5
|
+
Author-email: Kavin <your-email@example.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: requests>=2.31.0
|
|
18
|
+
Requires-Dist: rich>=13.0.0
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# 📚 Coursera Transcript Generator
|
|
22
|
+
|
|
23
|
+
A beautiful CLI tool to bulk-download transcripts and subtitles from any Coursera course you're enrolled in.
|
|
24
|
+
|
|
25
|
+

|
|
26
|
+
|
|
27
|
+

|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## ✨ Features
|
|
33
|
+
|
|
34
|
+
- **Interactive prompts** — guided step-by-step experience, no need to memorize flags
|
|
35
|
+
- **Bulk download** — grabs every lecture transcript in a course at once
|
|
36
|
+
- **Organized output** — files are neatly sorted into module folders
|
|
37
|
+
- **Progress tracking** — real-time progress bar with download status
|
|
38
|
+
- **Retry logic** — automatic retries with exponential backoff on failures
|
|
39
|
+
- **Multiple formats** — supports both `.txt` (plain text) and `.srt` (subtitle) formats
|
|
40
|
+
- **Multi-language** — download transcripts in any available language
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 📦 Installation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Clone the repo
|
|
48
|
+
git clone https://github.com/your-username/coursera-transcript-generator.git
|
|
49
|
+
cd coursera-transcript-generator
|
|
50
|
+
|
|
51
|
+
# Install in editable mode
|
|
52
|
+
pip install -e .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 🚀 Usage
|
|
58
|
+
|
|
59
|
+
### Interactive Mode (recommended)
|
|
60
|
+
|
|
61
|
+
Just run the command with no arguments — it will guide you through everything:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
coursera-transcripts
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
You'll be prompted for:
|
|
68
|
+
|
|
69
|
+
1. **CAUTH cookie** — your Coursera authentication token
|
|
70
|
+
2. **Course slug** — the identifier from the course URL
|
|
71
|
+
3. **Options** — language, format, and output directory
|
|
72
|
+
|
|
73
|
+
### CLI Mode
|
|
74
|
+
|
|
75
|
+
Pass everything as flags for scripting / automation:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
coursera-transcripts \
|
|
79
|
+
--cookie "YOUR_CAUTH_VALUE" \
|
|
80
|
+
--slug "machine-learning" \
|
|
81
|
+
--language en \
|
|
82
|
+
--format txt \
|
|
83
|
+
--output ./transcripts
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### All Options
|
|
87
|
+
|
|
88
|
+
| Flag | Short | Default | Description |
|
|
89
|
+
| ------------ | ----- | ------------ | ------------------------------ |
|
|
90
|
+
| `--cookie` | `-c` | _(prompted)_ | CAUTH cookie value |
|
|
91
|
+
| `--slug` | `-s` | _(prompted)_ | Course slug from URL |
|
|
92
|
+
| `--language` | `-l` | `en` | Subtitle language code |
|
|
93
|
+
| `--format` | | `txt` | Output format (`txt` or `srt`) |
|
|
94
|
+
| `--output` | `-o` | `./output` | Parent output directory |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 🔑 Getting Your CAUTH Cookie
|
|
99
|
+
|
|
100
|
+
1. Open [coursera.org](https://www.coursera.org) and **log in**
|
|
101
|
+
2. Open **DevTools** (`F12` or `Ctrl+Shift+I`)
|
|
102
|
+
3. Go to **Application** → **Cookies** → `https://www.coursera.org`
|
|
103
|
+
4. Find the cookie named **`CAUTH`**
|
|
104
|
+
5. Copy its **Value**
|
|
105
|
+
|
|
106
|
+
> [!IMPORTANT]
|
|
107
|
+
> You must be **enrolled** in the course to download its transcripts.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 📁 Output Structure
|
|
112
|
+
|
|
113
|
+
Transcripts are organized by module:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
output/
|
|
117
|
+
└── machine-learning/
|
|
118
|
+
├── introduction-to-ml/
|
|
119
|
+
│ ├── Welcome to Machine Learning.txt
|
|
120
|
+
│ ├── What is Machine Learning.txt
|
|
121
|
+
│ └── Supervised Learning.txt
|
|
122
|
+
├── linear-regression/
|
|
123
|
+
│ ├── Model Representation.txt
|
|
124
|
+
│ └── Cost Function.txt
|
|
125
|
+
└── ...
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 🔧 Finding the Course Slug
|
|
131
|
+
|
|
132
|
+
The slug is the part of the URL after `/learn/`:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
https://www.coursera.org/learn/machine-learning
|
|
136
|
+
└── this is the slug
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 📋 Requirements
|
|
142
|
+
|
|
143
|
+
- Python **3.10+**
|
|
144
|
+
- A Coursera account with enrollment in the target course
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 📄 License
|
|
149
|
+
|
|
150
|
+
MIT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "coursera-transcripts"
|
|
3
|
-
|
|
3
|
+
dynamic = ["version"]
|
|
4
4
|
description = "CLI tool to extract Coursera course transcripts/subtitles"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -28,3 +28,6 @@ coursera-transcripts = "coursera_transcripts.cli:main"
|
|
|
28
28
|
[build-system]
|
|
29
29
|
requires = ["setuptools>=68.0"]
|
|
30
30
|
build-backend = "setuptools.build_meta"
|
|
31
|
+
|
|
32
|
+
[tool.setuptools.dynamic]
|
|
33
|
+
version = {attr = "coursera_transcripts.__version__"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[egg_info]
|
|
2
|
-
tag_build =
|
|
3
|
-
tag_date = 0
|
|
4
|
-
|
|
1
|
+
[egg_info]
|
|
2
|
+
tag_build =
|
|
3
|
+
tag_date = 0
|
|
4
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.3"
|
|
@@ -38,7 +38,7 @@ def _show_banner() -> None:
|
|
|
38
38
|
console.print(BANNER)
|
|
39
39
|
subtitle = Text("Transcript Generator", style="bold bright_magenta")
|
|
40
40
|
subtitle.append(" • ", style="dim")
|
|
41
|
-
subtitle.append("
|
|
41
|
+
subtitle.append(f"v{__version__}", style="dim bright_cyan")
|
|
42
42
|
console.print(subtitle, justify="center")
|
|
43
43
|
console.print()
|
|
44
44
|
|
{coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3/src/coursera_transcripts.egg-info}/PKG-INFO
RENAMED
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: coursera-transcripts
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary: CLI tool to extract Coursera course transcripts/subtitles
|
|
5
|
-
Author-email: Kavin <your-email@example.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Classifier: Programming Language :: Python :: 3
|
|
8
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
-
Classifier: Operating System :: OS Independent
|
|
13
|
-
Classifier: Environment :: Console
|
|
14
|
-
Requires-Python: >=3.10
|
|
15
|
-
Description-Content-Type: text/markdown
|
|
16
|
-
License-File: LICENSE
|
|
17
|
-
Requires-Dist: requests>=2.31.0
|
|
18
|
-
Requires-Dist: rich>=13.0.0
|
|
19
|
-
Dynamic: license-file
|
|
20
|
-
|
|
21
|
-
# 📚 Coursera Transcript Generator
|
|
22
|
-
|
|
23
|
-
A beautiful CLI tool to bulk-download transcripts and subtitles from any Coursera course you're enrolled in.
|
|
24
|
-
|
|
25
|
-

|
|
26
|
-
|
|
27
|
-

|
|
28
|
-

|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## ✨ Features
|
|
33
|
-
|
|
34
|
-
- **Interactive prompts** — guided step-by-step experience, no need to memorize flags
|
|
35
|
-
- **Bulk download** — grabs every lecture transcript in a course at once
|
|
36
|
-
- **Organized output** — files are neatly sorted into module folders
|
|
37
|
-
- **Progress tracking** — real-time progress bar with download status
|
|
38
|
-
- **Retry logic** — automatic retries with exponential backoff on failures
|
|
39
|
-
- **Multiple formats** — supports both `.txt` (plain text) and `.srt` (subtitle) formats
|
|
40
|
-
- **Multi-language** — download transcripts in any available language
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## 📦 Installation
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
# Clone the repo
|
|
48
|
-
git clone https://github.com/your-username/coursera-transcript-generator.git
|
|
49
|
-
cd coursera-transcript-generator
|
|
50
|
-
|
|
51
|
-
# Install in editable mode
|
|
52
|
-
pip install -e .
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## 🚀 Usage
|
|
58
|
-
|
|
59
|
-
### Interactive Mode (recommended)
|
|
60
|
-
|
|
61
|
-
Just run the command with no arguments — it will guide you through everything:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
coursera-transcripts
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
You'll be prompted for:
|
|
68
|
-
|
|
69
|
-
1. **CAUTH cookie** — your Coursera authentication token
|
|
70
|
-
2. **Course slug** — the identifier from the course URL
|
|
71
|
-
3. **Options** — language, format, and output directory
|
|
72
|
-
|
|
73
|
-
### CLI Mode
|
|
74
|
-
|
|
75
|
-
Pass everything as flags for scripting / automation:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
coursera-transcripts \
|
|
79
|
-
--cookie "YOUR_CAUTH_VALUE" \
|
|
80
|
-
--slug "machine-learning" \
|
|
81
|
-
--language en \
|
|
82
|
-
--format txt \
|
|
83
|
-
--output ./transcripts
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### All Options
|
|
87
|
-
|
|
88
|
-
| Flag | Short | Default | Description |
|
|
89
|
-
| ------------ | ----- | ------------ | ------------------------------ |
|
|
90
|
-
| `--cookie` | `-c` | _(prompted)_ | CAUTH cookie value |
|
|
91
|
-
| `--slug` | `-s` | _(prompted)_ | Course slug from URL |
|
|
92
|
-
| `--language` | `-l` | `en` | Subtitle language code |
|
|
93
|
-
| `--format` | | `txt` | Output format (`txt` or `srt`) |
|
|
94
|
-
| `--output` | `-o` | `./output` | Parent output directory |
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## 🔑 Getting Your CAUTH Cookie
|
|
99
|
-
|
|
100
|
-
1. Open [coursera.org](https://www.coursera.org) and **log in**
|
|
101
|
-
2. Open **DevTools** (`F12` or `Ctrl+Shift+I`)
|
|
102
|
-
3. Go to **Application** → **Cookies** → `https://www.coursera.org`
|
|
103
|
-
4. Find the cookie named **`CAUTH`**
|
|
104
|
-
5. Copy its **Value**
|
|
105
|
-
|
|
106
|
-
> [!IMPORTANT]
|
|
107
|
-
> You must be **enrolled** in the course to download its transcripts.
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 📁 Output Structure
|
|
112
|
-
|
|
113
|
-
Transcripts are organized by module:
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
output/
|
|
117
|
-
└── machine-learning/
|
|
118
|
-
├── introduction-to-ml/
|
|
119
|
-
│ ├── Welcome to Machine Learning.txt
|
|
120
|
-
│ ├── What is Machine Learning.txt
|
|
121
|
-
│ └── Supervised Learning.txt
|
|
122
|
-
├── linear-regression/
|
|
123
|
-
│ ├── Model Representation.txt
|
|
124
|
-
│ └── Cost Function.txt
|
|
125
|
-
└── ...
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## 🔧 Finding the Course Slug
|
|
131
|
-
|
|
132
|
-
The slug is the part of the URL after `/learn/`:
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
https://www.coursera.org/learn/machine-learning
|
|
136
|
-
└── this is the slug
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## 📋 Requirements
|
|
142
|
-
|
|
143
|
-
- Python **3.10+**
|
|
144
|
-
- A Coursera account with enrollment in the target course
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## 📄 License
|
|
149
|
-
|
|
150
|
-
MIT
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: coursera-transcripts
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: CLI tool to extract Coursera course transcripts/subtitles
|
|
5
|
+
Author-email: Kavin <your-email@example.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: requests>=2.31.0
|
|
18
|
+
Requires-Dist: rich>=13.0.0
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# 📚 Coursera Transcript Generator
|
|
22
|
+
|
|
23
|
+
A beautiful CLI tool to bulk-download transcripts and subtitles from any Coursera course you're enrolled in.
|
|
24
|
+
|
|
25
|
+

|
|
26
|
+
|
|
27
|
+

|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## ✨ Features
|
|
33
|
+
|
|
34
|
+
- **Interactive prompts** — guided step-by-step experience, no need to memorize flags
|
|
35
|
+
- **Bulk download** — grabs every lecture transcript in a course at once
|
|
36
|
+
- **Organized output** — files are neatly sorted into module folders
|
|
37
|
+
- **Progress tracking** — real-time progress bar with download status
|
|
38
|
+
- **Retry logic** — automatic retries with exponential backoff on failures
|
|
39
|
+
- **Multiple formats** — supports both `.txt` (plain text) and `.srt` (subtitle) formats
|
|
40
|
+
- **Multi-language** — download transcripts in any available language
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 📦 Installation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Clone the repo
|
|
48
|
+
git clone https://github.com/your-username/coursera-transcript-generator.git
|
|
49
|
+
cd coursera-transcript-generator
|
|
50
|
+
|
|
51
|
+
# Install in editable mode
|
|
52
|
+
pip install -e .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 🚀 Usage
|
|
58
|
+
|
|
59
|
+
### Interactive Mode (recommended)
|
|
60
|
+
|
|
61
|
+
Just run the command with no arguments — it will guide you through everything:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
coursera-transcripts
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
You'll be prompted for:
|
|
68
|
+
|
|
69
|
+
1. **CAUTH cookie** — your Coursera authentication token
|
|
70
|
+
2. **Course slug** — the identifier from the course URL
|
|
71
|
+
3. **Options** — language, format, and output directory
|
|
72
|
+
|
|
73
|
+
### CLI Mode
|
|
74
|
+
|
|
75
|
+
Pass everything as flags for scripting / automation:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
coursera-transcripts \
|
|
79
|
+
--cookie "YOUR_CAUTH_VALUE" \
|
|
80
|
+
--slug "machine-learning" \
|
|
81
|
+
--language en \
|
|
82
|
+
--format txt \
|
|
83
|
+
--output ./transcripts
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### All Options
|
|
87
|
+
|
|
88
|
+
| Flag | Short | Default | Description |
|
|
89
|
+
| ------------ | ----- | ------------ | ------------------------------ |
|
|
90
|
+
| `--cookie` | `-c` | _(prompted)_ | CAUTH cookie value |
|
|
91
|
+
| `--slug` | `-s` | _(prompted)_ | Course slug from URL |
|
|
92
|
+
| `--language` | `-l` | `en` | Subtitle language code |
|
|
93
|
+
| `--format` | | `txt` | Output format (`txt` or `srt`) |
|
|
94
|
+
| `--output` | `-o` | `./output` | Parent output directory |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 🔑 Getting Your CAUTH Cookie
|
|
99
|
+
|
|
100
|
+
1. Open [coursera.org](https://www.coursera.org) and **log in**
|
|
101
|
+
2. Open **DevTools** (`F12` or `Ctrl+Shift+I`)
|
|
102
|
+
3. Go to **Application** → **Cookies** → `https://www.coursera.org`
|
|
103
|
+
4. Find the cookie named **`CAUTH`**
|
|
104
|
+
5. Copy its **Value**
|
|
105
|
+
|
|
106
|
+
> [!IMPORTANT]
|
|
107
|
+
> You must be **enrolled** in the course to download its transcripts.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 📁 Output Structure
|
|
112
|
+
|
|
113
|
+
Transcripts are organized by module:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
output/
|
|
117
|
+
└── machine-learning/
|
|
118
|
+
├── introduction-to-ml/
|
|
119
|
+
│ ├── Welcome to Machine Learning.txt
|
|
120
|
+
│ ├── What is Machine Learning.txt
|
|
121
|
+
│ └── Supervised Learning.txt
|
|
122
|
+
├── linear-regression/
|
|
123
|
+
│ ├── Model Representation.txt
|
|
124
|
+
│ └── Cost Function.txt
|
|
125
|
+
└── ...
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 🔧 Finding the Course Slug
|
|
131
|
+
|
|
132
|
+
The slug is the part of the URL after `/learn/`:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
https://www.coursera.org/learn/machine-learning
|
|
136
|
+
└── this is the slug
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 📋 Requirements
|
|
142
|
+
|
|
143
|
+
- Python **3.10+**
|
|
144
|
+
- A Coursera account with enrollment in the target course
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 📄 License
|
|
149
|
+
|
|
150
|
+
MIT
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{coursera_transcripts-0.1.2 → coursera_transcripts-0.1.3}/src/coursera_transcripts/downloader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|