ytp-dl 0.6.4__py3-none-any.whl → 0.6.5__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.
- {ytp_dl-0.6.4.dist-info → ytp_dl-0.6.5.dist-info}/METADATA +155 -72
- ytp_dl-0.6.5.dist-info/RECORD +8 -0
- ytp_dl-0.6.4.dist-info/RECORD +0 -8
- {ytp_dl-0.6.4.dist-info → ytp_dl-0.6.5.dist-info}/WHEEL +0 -0
- {ytp_dl-0.6.4.dist-info → ytp_dl-0.6.5.dist-info}/entry_points.txt +0 -0
- {ytp_dl-0.6.4.dist-info → ytp_dl-0.6.5.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: ytp-dl
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.5
|
|
4
4
|
Summary: YouTube video downloader with Mullvad VPN integration and Flask API
|
|
5
5
|
Home-page: https://github.com/yourusername/ytp-dl
|
|
6
6
|
Author: dumgum82
|
|
@@ -33,39 +33,39 @@ Dynamic: summary
|
|
|
33
33
|
|
|
34
34
|
# ytp-dl
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
A lightweight YouTube downloader with Mullvad VPN integration and an HTTP API.
|
|
37
37
|
|
|
38
38
|
[](https://pypi.org/project/ytp-dl/)
|
|
39
39
|
[](https://pypi.org/project/ytp-dl/)
|
|
40
40
|
[](https://pypi.org/project/ytp-dl/)
|
|
41
41
|
[](https://pypi.org/project/ytp-dl/)
|
|
42
42
|
|
|
43
|
-
**ytp-dl** is a privacy-focused YouTube downloader that
|
|
43
|
+
**ytp-dl** is a privacy-focused YouTube downloader that routes downloads through Mullvad VPN via an HTTP API.
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
47
|
-
##
|
|
47
|
+
## Features
|
|
48
48
|
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
49
|
+
* Privacy-first: connect/disconnect Mullvad per download
|
|
50
|
+
* Smart quality selection: prefers 1080p H.264 + AAC (no transcoding)
|
|
51
|
+
* Audio downloads: extract audio as MP3
|
|
52
|
+
* HTTP API: simple Flask API with concurrency controls
|
|
53
|
+
* VPS-ready: automated installer script for Ubuntu
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
57
|
-
##
|
|
57
|
+
## Installation
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
pip install ytp-dl==0.6.
|
|
60
|
+
pip install ytp-dl==0.6.5 yt-dlp[default]
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Requirements:
|
|
64
64
|
|
|
65
|
-
* Linux
|
|
66
|
-
*
|
|
67
|
-
* FFmpeg (
|
|
68
|
-
* Deno (system-wide
|
|
65
|
+
* Linux (tested on Ubuntu 24.04/25.04)
|
|
66
|
+
* Mullvad CLI installed and configured
|
|
67
|
+
* FFmpeg (audio/video handling)
|
|
68
|
+
* Deno (system-wide; required by yt-dlp for modern YouTube extraction)
|
|
69
69
|
* Python 3.8+
|
|
70
70
|
|
|
71
71
|
Notes:
|
|
@@ -74,29 +74,38 @@ Notes:
|
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
77
|
-
##
|
|
77
|
+
## Using your VPS
|
|
78
78
|
|
|
79
|
-
Once your VPS is running, you can download videos using simple HTTP requests
|
|
79
|
+
Once your VPS is running, you can download videos using simple HTTP requests.
|
|
80
80
|
|
|
81
|
-
### Download a
|
|
81
|
+
### Download a video (1080p MP4)
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
curl -X POST http://YOUR_VPS_IP:5000/api/download
|
|
84
|
+
curl -X POST http://YOUR_VPS_IP:5000/api/download \
|
|
85
|
+
-H "Content-Type: application/json" \
|
|
86
|
+
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}' \
|
|
87
|
+
--output video.mp4
|
|
85
88
|
```
|
|
86
89
|
|
|
87
|
-
### Download
|
|
90
|
+
### Download audio only (MP3)
|
|
88
91
|
|
|
89
92
|
```bash
|
|
90
|
-
curl -X POST http://YOUR_VPS_IP:5000/api/download
|
|
93
|
+
curl -X POST http://YOUR_VPS_IP:5000/api/download \
|
|
94
|
+
-H "Content-Type: application/json" \
|
|
95
|
+
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "extension": "mp3"}' \
|
|
96
|
+
--output audio.mp3
|
|
91
97
|
```
|
|
92
98
|
|
|
93
|
-
### Download at
|
|
99
|
+
### Download at a specific resolution
|
|
94
100
|
|
|
95
101
|
```bash
|
|
96
|
-
curl -X POST http://YOUR_VPS_IP:5000/api/download
|
|
102
|
+
curl -X POST http://YOUR_VPS_IP:5000/api/download \
|
|
103
|
+
-H "Content-Type: application/json" \
|
|
104
|
+
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "resolution": 720}' \
|
|
105
|
+
--output video.mp4
|
|
97
106
|
```
|
|
98
107
|
|
|
99
|
-
### Check
|
|
108
|
+
### Check server health
|
|
100
109
|
|
|
101
110
|
```bash
|
|
102
111
|
curl http://YOUR_VPS_IP:5000/healthz
|
|
@@ -124,7 +133,7 @@ response = requests.post(
|
|
|
124
133
|
"resolution": 1080,
|
|
125
134
|
"extension": "mp4"
|
|
126
135
|
},
|
|
127
|
-
stream=True
|
|
136
|
+
stream=True,
|
|
128
137
|
)
|
|
129
138
|
|
|
130
139
|
if response.status_code == 200:
|
|
@@ -139,28 +148,29 @@ else:
|
|
|
139
148
|
|
|
140
149
|
---
|
|
141
150
|
|
|
142
|
-
##
|
|
151
|
+
## Configuration
|
|
143
152
|
|
|
144
|
-
### Installation
|
|
153
|
+
### Installation script variables
|
|
145
154
|
|
|
146
|
-
These environment variables configure the VPS installation (
|
|
155
|
+
These environment variables configure the VPS installation (you can override them when running the script).
|
|
147
156
|
|
|
148
157
|
| Variable | Description | Default |
|
|
149
158
|
| ------------------------ | --------------------------------------- | --------------------- |
|
|
150
159
|
| `PORT` | API server port | `5000` |
|
|
151
160
|
| `APP_DIR` | Installation directory | `/opt/yt-dlp-mullvad` |
|
|
152
|
-
| `MV_ACCOUNT` | Mullvad account number |
|
|
161
|
+
| `MV_ACCOUNT` | Mullvad account number | (empty) |
|
|
153
162
|
| `YTPDL_MAX_CONCURRENT` | Max simultaneous downloads (API cap) | `1` |
|
|
154
163
|
| `YTPDL_MULLVAD_LOCATION` | Mullvad relay location code (e.g. `us`) | `us` |
|
|
164
|
+
| `GUNICORN_THREADS` | Threads per Gunicorn worker | `4` |
|
|
155
165
|
|
|
156
166
|
Notes:
|
|
157
167
|
|
|
158
168
|
* If `MV_ACCOUNT` is set, the installer attempts `mullvad account login <MV_ACCOUNT>` once.
|
|
159
169
|
* If `MV_ACCOUNT` is left empty, the script skips login and assumes Mullvad is already configured.
|
|
160
170
|
|
|
161
|
-
### Runtime
|
|
171
|
+
### Runtime environment variables
|
|
162
172
|
|
|
163
|
-
After installation, these
|
|
173
|
+
After installation, these are set in `/etc/default/ytp-dl-api` and can be edited manually.
|
|
164
174
|
|
|
165
175
|
| Variable | Description | Default |
|
|
166
176
|
| ------------------------ | ----------------------------- | -------------------------- |
|
|
@@ -177,50 +187,33 @@ sudo systemctl restart ytp-dl-api
|
|
|
177
187
|
|
|
178
188
|
---
|
|
179
189
|
|
|
180
|
-
##
|
|
181
|
-
|
|
182
|
-
### View Service Status
|
|
190
|
+
## Managing your VPS service
|
|
183
191
|
|
|
184
192
|
```bash
|
|
185
193
|
sudo systemctl status ytp-dl-api
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
### View Logs
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
194
|
sudo journalctl -u ytp-dl-api -f
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Restart Service
|
|
195
|
-
|
|
196
|
-
```bash
|
|
197
195
|
sudo systemctl restart ytp-dl-api
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Stop/Start Service
|
|
201
|
-
|
|
202
|
-
```bash
|
|
203
196
|
sudo systemctl stop ytp-dl-api
|
|
204
197
|
sudo systemctl start ytp-dl-api
|
|
205
198
|
```
|
|
206
199
|
|
|
207
200
|
---
|
|
208
201
|
|
|
209
|
-
##
|
|
202
|
+
## API reference
|
|
210
203
|
|
|
211
204
|
### POST `/api/download`
|
|
212
205
|
|
|
213
|
-
|
|
206
|
+
Request body:
|
|
214
207
|
|
|
215
208
|
```json
|
|
216
209
|
{
|
|
217
210
|
"url": "string (required)",
|
|
218
211
|
"resolution": "integer (optional, default: 1080)",
|
|
219
|
-
"extension": "string (optional, 'mp4' or '
|
|
212
|
+
"extension": "string (optional, 'mp4', 'mp3', or 'best')"
|
|
220
213
|
}
|
|
221
214
|
```
|
|
222
215
|
|
|
223
|
-
|
|
216
|
+
Response:
|
|
224
217
|
|
|
225
218
|
* `200 OK` - File download stream
|
|
226
219
|
* `400 Bad Request` - Missing or invalid URL
|
|
@@ -229,8 +222,6 @@ sudo systemctl start ytp-dl-api
|
|
|
229
222
|
|
|
230
223
|
### GET `/healthz`
|
|
231
224
|
|
|
232
|
-
**Response:**
|
|
233
|
-
|
|
234
225
|
```json
|
|
235
226
|
{
|
|
236
227
|
"ok": true,
|
|
@@ -241,16 +232,22 @@ sudo systemctl start ytp-dl-api
|
|
|
241
232
|
|
|
242
233
|
---
|
|
243
234
|
|
|
244
|
-
##
|
|
235
|
+
## VPS deployment
|
|
236
|
+
|
|
237
|
+
### Why policy routing is included
|
|
238
|
+
|
|
239
|
+
When Mullvad connects/disconnects, Linux routing can change in a way that breaks inbound TCP handshakes (clients see intermittent connection timeouts). The installer sets up a small policy-routing rule that forces replies sourced from your public VPS IP to use the public interface, keeping the API reachable even while Mullvad is cycling.
|
|
245
240
|
|
|
246
|
-
|
|
241
|
+
### What the installer does
|
|
247
242
|
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
243
|
+
* Installs Python, FFmpeg, Mullvad CLI, and Deno
|
|
244
|
+
* Creates a virtualenv at `/opt/yt-dlp-mullvad/venv`
|
|
245
|
+
* Installs `ytp-dl==0.6.5` + `yt-dlp[default]` + `gunicorn`
|
|
246
|
+
* Installs a policy-routing oneshot service to keep the public API reachable
|
|
247
|
+
* Sets up a systemd service on port 5000
|
|
248
|
+
* Runs Gunicorn with `gthread` (threaded) workers
|
|
249
|
+
|
|
250
|
+
Note: `gthread` is a built-in Gunicorn worker class (no extra Python dependency).
|
|
254
251
|
|
|
255
252
|
```bash
|
|
256
253
|
#!/usr/bin/env bash
|
|
@@ -259,9 +256,10 @@ sudo systemctl start ytp-dl-api
|
|
|
259
256
|
# What this does:
|
|
260
257
|
# - Installs Python, ffmpeg, Mullvad CLI
|
|
261
258
|
# - Installs Deno system-wide (JS runtime required for modern YouTube extraction via yt-dlp)
|
|
259
|
+
# - Configures policy routing so the public API stays reachable while Mullvad toggles
|
|
262
260
|
# - Creates a virtualenv at /opt/yt-dlp-mullvad/venv
|
|
263
|
-
# - Installs ytp-dl==0.6.
|
|
264
|
-
# - Creates a
|
|
261
|
+
# - Installs ytp-dl==0.6.5 + yt-dlp[default] + gunicorn in that venv
|
|
262
|
+
# - Creates a systemd service ytp-dl-api.service on port 5000
|
|
265
263
|
#
|
|
266
264
|
# Mullvad connect/disconnect is handled per-job by downloader.py.
|
|
267
265
|
|
|
@@ -272,18 +270,33 @@ PORT="${PORT:-5000}" # API listen port
|
|
|
272
270
|
APP_DIR="${APP_DIR:-/opt/yt-dlp-mullvad}" # app/venv root
|
|
273
271
|
VENV_DIR="${VENV_DIR:-${APP_DIR}/venv}" # python venv
|
|
274
272
|
|
|
275
|
-
MV_ACCOUNT="${MV_ACCOUNT:-}" # Mullvad account (
|
|
273
|
+
MV_ACCOUNT="${MV_ACCOUNT:-}" # Mullvad account (optional)
|
|
276
274
|
YTPDL_MAX_CONCURRENT="${YTPDL_MAX_CONCURRENT:-1}" # API concurrency cap
|
|
277
275
|
YTPDL_MULLVAD_LOCATION="${YTPDL_MULLVAD_LOCATION:-us}" # default Mullvad relay hint
|
|
278
|
-
GUNICORN_THREADS="${GUNICORN_THREADS:-4}"
|
|
276
|
+
GUNICORN_THREADS="${GUNICORN_THREADS:-4}" # keep API responsive on small VPS
|
|
279
277
|
### -------------------------------------------------------------------------
|
|
280
278
|
|
|
281
279
|
[[ "${EUID}" -eq 0 ]] || { echo "Please run as root"; exit 1; }
|
|
282
280
|
export DEBIAN_FRONTEND=noninteractive
|
|
283
281
|
|
|
282
|
+
echo "==> 0) Capture public routing (pre-VPN)"
|
|
283
|
+
PUB_DEV="$(ip route show default | awk '/default/ {print $5; exit}')"
|
|
284
|
+
PUB_GW="$(ip route show default | awk '/default/ {print $3; exit}')"
|
|
285
|
+
PUB_IP="$(ip -4 addr show dev "${PUB_DEV}" | awk '/inet / {print $2}' | cut -d/ -f1 | head -n1)"
|
|
286
|
+
|
|
287
|
+
if [[ -z "${PUB_DEV}" || -z "${PUB_GW}" || -z "${PUB_IP}" ]]; then
|
|
288
|
+
echo "Failed to detect public routing (PUB_DEV/PUB_GW/PUB_IP)."
|
|
289
|
+
echo "PUB_DEV=${PUB_DEV} PUB_GW=${PUB_GW} PUB_IP=${PUB_IP}"
|
|
290
|
+
exit 1
|
|
291
|
+
fi
|
|
292
|
+
|
|
293
|
+
echo "Public dev: ${PUB_DEV} | gw: ${PUB_GW} | ip: ${PUB_IP}"
|
|
294
|
+
|
|
284
295
|
echo "==> 1) Base packages & Mullvad CLI"
|
|
285
296
|
apt-get update
|
|
286
|
-
apt-get install -yq --no-install-recommends
|
|
297
|
+
apt-get install -yq --no-install-recommends \
|
|
298
|
+
python3-venv python3-pip curl ffmpeg ca-certificates unzip \
|
|
299
|
+
iproute2 iptables
|
|
287
300
|
|
|
288
301
|
if ! command -v mullvad >/dev/null 2>&1; then
|
|
289
302
|
curl -fsSLo /tmp/mullvad.deb https://mullvad.net/download/app/deb/latest/
|
|
@@ -302,6 +315,72 @@ mullvad status || true
|
|
|
302
315
|
mullvad lockdown-mode set off || true
|
|
303
316
|
mullvad lan set allow || true
|
|
304
317
|
|
|
318
|
+
echo "==> 1.1) Policy routing: keep replies from ${PUB_IP} on ${PUB_DEV}"
|
|
319
|
+
# Loose reverse-path filtering avoids drops when the default route changes under VPN.
|
|
320
|
+
tee /etc/sysctl.d/99-ytpdl-policy-routing.conf >/dev/null <<EOF
|
|
321
|
+
net.ipv4.conf.all.rp_filter=2
|
|
322
|
+
net.ipv4.conf.default.rp_filter=2
|
|
323
|
+
net.ipv4.conf.${PUB_DEV}.rp_filter=2
|
|
324
|
+
EOF
|
|
325
|
+
sysctl --system >/dev/null
|
|
326
|
+
|
|
327
|
+
# Persist the detected public route info for re-apply at boot.
|
|
328
|
+
tee /etc/default/ytpdl-policy-routing >/dev/null <<EOF
|
|
329
|
+
PUB_DEV=${PUB_DEV}
|
|
330
|
+
PUB_GW=${PUB_GW}
|
|
331
|
+
PUB_IP=${PUB_IP}
|
|
332
|
+
EOF
|
|
333
|
+
|
|
334
|
+
# Add a routing table id if it doesn't already exist.
|
|
335
|
+
grep -qE '^100\s+ytpdl-public$' /etc/iproute2/rt_tables || echo '100 ytpdl-public' >> /etc/iproute2/rt_tables
|
|
336
|
+
|
|
337
|
+
# Idempotent apply script.
|
|
338
|
+
tee /usr/local/sbin/ytpdl-policy-routing.sh >/dev/null <<'EOF'
|
|
339
|
+
#!/usr/bin/env bash
|
|
340
|
+
set -euo pipefail
|
|
341
|
+
|
|
342
|
+
source /etc/default/ytpdl-policy-routing
|
|
343
|
+
|
|
344
|
+
TABLE_ID="100"
|
|
345
|
+
TABLE_NAME="ytpdl-public"
|
|
346
|
+
PRIO="11000"
|
|
347
|
+
|
|
348
|
+
# Ensure table has the public default route.
|
|
349
|
+
ip route replace default via "${PUB_GW}" dev "${PUB_DEV}" table "${TABLE_NAME}"
|
|
350
|
+
|
|
351
|
+
# Ensure rule exists (replace is not supported for rules).
|
|
352
|
+
if ip rule show | grep -qE "^${PRIO}:.*from ${PUB_IP}/32 lookup ${TABLE_NAME}\b"; then
|
|
353
|
+
:
|
|
354
|
+
else
|
|
355
|
+
# remove any stale rule at this priority
|
|
356
|
+
while ip rule show | grep -qE "^${PRIO}:"; do
|
|
357
|
+
ip rule del priority "${PRIO}" || true
|
|
358
|
+
done
|
|
359
|
+
ip rule add priority "${PRIO}" from "${PUB_IP}/32" table "${TABLE_NAME}"
|
|
360
|
+
fi
|
|
361
|
+
|
|
362
|
+
ip route flush cache || true
|
|
363
|
+
EOF
|
|
364
|
+
chmod +x /usr/local/sbin/ytpdl-policy-routing.sh
|
|
365
|
+
|
|
366
|
+
tee /etc/systemd/system/ytpdl-policy-routing.service >/dev/null <<EOF
|
|
367
|
+
[Unit]
|
|
368
|
+
Description=ytp-dl policy routing (keep public API reachable)
|
|
369
|
+
After=network-online.target
|
|
370
|
+
Wants=network-online.target
|
|
371
|
+
|
|
372
|
+
[Service]
|
|
373
|
+
Type=oneshot
|
|
374
|
+
ExecStart=/usr/local/sbin/ytpdl-policy-routing.sh
|
|
375
|
+
RemainAfterExit=yes
|
|
376
|
+
|
|
377
|
+
[Install]
|
|
378
|
+
WantedBy=multi-user.target
|
|
379
|
+
EOF
|
|
380
|
+
|
|
381
|
+
systemctl daemon-reload
|
|
382
|
+
systemctl enable --now ytpdl-policy-routing.service
|
|
383
|
+
|
|
305
384
|
echo "==> 1.5) Install Deno (system-wide, for yt-dlp YouTube extraction)"
|
|
306
385
|
# Install into /usr/local/bin/deno so systemd PATH can see it.
|
|
307
386
|
# Official installer supports system-wide install via DENO_INSTALL=/usr/local.
|
|
@@ -315,7 +394,7 @@ mkdir -p "${APP_DIR}"
|
|
|
315
394
|
python3 -m venv "${VENV_DIR}"
|
|
316
395
|
source "${VENV_DIR}/bin/activate"
|
|
317
396
|
pip install --upgrade pip
|
|
318
|
-
pip install "ytp-dl==0.6.
|
|
397
|
+
pip install "ytp-dl==0.6.5" "yt-dlp[default]" gunicorn
|
|
319
398
|
deactivate
|
|
320
399
|
|
|
321
400
|
echo "==> 3) API environment file (/etc/default/ytp-dl-api)"
|
|
@@ -329,8 +408,9 @@ echo "==> 4) Gunicorn systemd service (ytp-dl-api.service on :${PORT})"
|
|
|
329
408
|
tee /etc/systemd/system/ytp-dl-api.service >/dev/null <<EOF
|
|
330
409
|
[Unit]
|
|
331
410
|
Description=Gunicorn for ytp-dl Mullvad API (minimal)
|
|
332
|
-
After=network-online.target
|
|
411
|
+
After=network-online.target ytpdl-policy-routing.service
|
|
333
412
|
Wants=network-online.target
|
|
413
|
+
Requires=ytpdl-policy-routing.service
|
|
334
414
|
|
|
335
415
|
[Service]
|
|
336
416
|
User=root
|
|
@@ -339,7 +419,9 @@ EnvironmentFile=/etc/default/ytp-dl-api
|
|
|
339
419
|
Environment=VIRTUAL_ENV=${VENV_DIR}
|
|
340
420
|
Environment=PATH=${VENV_DIR}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
|
|
341
421
|
|
|
342
|
-
ExecStart=${VENV_DIR}/bin/gunicorn -k gthread -w 1 --threads ${GUNICORN_THREADS}
|
|
422
|
+
ExecStart=${VENV_DIR}/bin/gunicorn -k gthread -w 1 --threads ${GUNICORN_THREADS} \
|
|
423
|
+
--timeout 0 --graceful-timeout 15 --keep-alive 20 \
|
|
424
|
+
--bind 0.0.0.0:${PORT} scripts.api:app
|
|
343
425
|
|
|
344
426
|
Restart=always
|
|
345
427
|
RestartSec=3
|
|
@@ -368,5 +450,6 @@ echo "========================================="
|
|
|
368
450
|
echo "Installation complete!"
|
|
369
451
|
echo "API running on port ${PORT}"
|
|
370
452
|
echo "Test from outside: curl http://YOUR_VPS_IP:${PORT}/healthz"
|
|
453
|
+
echo "If you use UFW: sudo ufw allow ${PORT}/tcp"
|
|
371
454
|
echo "========================================="
|
|
372
455
|
```
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
scripts/__init__.py,sha256=EbAplfCcyLD3Q_9sxemm6owCc5_UJv53vmlxy810p2s,152
|
|
2
|
+
scripts/api.py,sha256=cyLjHmelLwzh8-GOjqXsQdhm6wLX8bOkADZ_qU1naRQ,4331
|
|
3
|
+
scripts/downloader.py,sha256=vvHasu-41DGPDUzOTA4kz52tijTkaii1NnuU4cHQxg8,10825
|
|
4
|
+
ytp_dl-0.6.5.dist-info/METADATA,sha256=XVL2522dMVIjIPh8cHZXSkkJM-7GRb-KyS_lfAwcOBI,14547
|
|
5
|
+
ytp_dl-0.6.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
6
|
+
ytp_dl-0.6.5.dist-info/entry_points.txt,sha256=QqjqZZAEt3Y7RGrleqZ312sjjboUpbMLdo7qFxuCH30,48
|
|
7
|
+
ytp_dl-0.6.5.dist-info/top_level.txt,sha256=rmzd5mewlrJy4sT608KPib7sM7edoY75AeqJeY3SPB4,8
|
|
8
|
+
ytp_dl-0.6.5.dist-info/RECORD,,
|
ytp_dl-0.6.4.dist-info/RECORD
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
scripts/__init__.py,sha256=EbAplfCcyLD3Q_9sxemm6owCc5_UJv53vmlxy810p2s,152
|
|
2
|
-
scripts/api.py,sha256=cyLjHmelLwzh8-GOjqXsQdhm6wLX8bOkADZ_qU1naRQ,4331
|
|
3
|
-
scripts/downloader.py,sha256=vvHasu-41DGPDUzOTA4kz52tijTkaii1NnuU4cHQxg8,10825
|
|
4
|
-
ytp_dl-0.6.4.dist-info/METADATA,sha256=Euvl-2zd5I4uh-6RVV1xGp-E8VQan7DvGXWOO5LXh6Q,11627
|
|
5
|
-
ytp_dl-0.6.4.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
6
|
-
ytp_dl-0.6.4.dist-info/entry_points.txt,sha256=QqjqZZAEt3Y7RGrleqZ312sjjboUpbMLdo7qFxuCH30,48
|
|
7
|
-
ytp_dl-0.6.4.dist-info/top_level.txt,sha256=rmzd5mewlrJy4sT608KPib7sM7edoY75AeqJeY3SPB4,8
|
|
8
|
-
ytp_dl-0.6.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|