vimeo2bunny 1.0.0 → 1.0.1
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 +27 -17
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# vimeo2bunny
|
|
2
2
|
|
|
3
|
-
Migrate videos from Vimeo to [
|
|
3
|
+
Migrate videos from Vimeo to [bunny.net Stream](https://bunny.net/stream/). Videos transfer directly from Vimeo to bunny.net via URL fetch — nothing is downloaded to your machine.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -39,19 +39,29 @@ npm link # makes `vimeo2bunny` available globally
|
|
|
39
39
|
|
|
40
40
|
## Setup
|
|
41
41
|
|
|
42
|
-
You need API credentials from both Vimeo and
|
|
42
|
+
You need API credentials from both Vimeo and bunny.net.
|
|
43
43
|
|
|
44
44
|
### 1. Get your Vimeo access token
|
|
45
45
|
|
|
46
|
-
1. Go to the [Vimeo Developer Portal](https://developer.vimeo.com/apps)
|
|
47
|
-
2. Create or select an
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
1. Go to the [Vimeo Developer Portal](https://developer.vimeo.com/apps) and log in
|
|
47
|
+
2. Click **Create an app** (or select an existing one)
|
|
48
|
+
- Enter any app name — avoid including "Vimeo" in the name as it will be rejected
|
|
49
|
+
- Add a brief description (e.g. "Video migration tool")
|
|
50
|
+
- Select **No** for "Will people besides you be able to access your app?"
|
|
51
|
+
- Accept the terms and click **Create App**
|
|
52
|
+
3. On your new app's page, go to the **Authentication** section in the left sidebar
|
|
53
|
+
4. Under **Generate an access token**, select **Authenticated (you)** and check these scopes:
|
|
54
|
+
- **Public** (required, pre-selected)
|
|
55
|
+
- **Private**
|
|
56
|
+
- **Video Files**
|
|
57
|
+
5. Click **Generate** — your personal access token will appear under **Personal Access Tokens**
|
|
58
|
+
6. Copy the token immediately; you won't be able to see it again
|
|
59
|
+
|
|
60
|
+
> **Note:** The **Video Files** scope requires a paid Vimeo plan (**Standard** or above). Without it, the tool cannot access download links.
|
|
61
|
+
|
|
62
|
+
### 2. Get your bunny.net Stream credentials
|
|
63
|
+
|
|
64
|
+
1. Log in to [bunny.net](https://panel.bunny.net)
|
|
55
65
|
2. Open your Stream library → **API** section
|
|
56
66
|
3. Copy the **Library ID** and **Library API Key**
|
|
57
67
|
|
|
@@ -63,7 +73,7 @@ You need API credentials from both Vimeo and Bunny.net.
|
|
|
63
73
|
vimeo2bunny config
|
|
64
74
|
```
|
|
65
75
|
|
|
66
|
-
You'll be prompted for your Vimeo token,
|
|
76
|
+
You'll be prompted for your Vimeo token, bunny.net Library ID, and bunny.net API key.
|
|
67
77
|
|
|
68
78
|
Alternatively, set environment variables (or use a `.env` file):
|
|
69
79
|
|
|
@@ -111,14 +121,14 @@ vimeo2bunny status
|
|
|
111
121
|
## How It Works
|
|
112
122
|
|
|
113
123
|
1. **Discover** — Fetches all videos and folders from your Vimeo account
|
|
114
|
-
2. **Map folders** — Creates
|
|
115
|
-
3. **Transfer** — For each video, gets a download URL from Vimeo and sends it to
|
|
116
|
-
4. **Metadata** — Copies title, description, and tags to the
|
|
124
|
+
2. **Map folders** — Creates bunny.net collections matching your Vimeo folder structure
|
|
125
|
+
3. **Transfer** — For each video, gets a download URL from Vimeo and sends it to bunny.net's fetch endpoint. bunny.net downloads directly from Vimeo.
|
|
126
|
+
4. **Metadata** — Copies title, description, and tags to the bunny.net video
|
|
117
127
|
5. **Track** — Saves progress to `~/.vimeo2bunny/migration-state.json` so migrations can be resumed
|
|
118
128
|
|
|
119
129
|
### What gets migrated
|
|
120
130
|
|
|
121
|
-
| Vimeo |
|
|
131
|
+
| Vimeo | bunny.net | Notes |
|
|
122
132
|
|-------|-------|-------|
|
|
123
133
|
| `name` | `title` | Direct mapping |
|
|
124
134
|
| `description` | `metaTags[description]` | Stored as meta tag |
|
|
@@ -127,7 +137,7 @@ vimeo2bunny status
|
|
|
127
137
|
|
|
128
138
|
## Troubleshooting
|
|
129
139
|
|
|
130
|
-
**"No download link available"** — Your Vimeo plan must be Standard or
|
|
140
|
+
**"No download link available"** — Your Vimeo plan must be **Standard** or above to access download links.
|
|
131
141
|
|
|
132
142
|
**"URL expired"** — Vimeo download URLs expire after 24 hours. The tool fetches fresh URLs, but very long pauses may require restarting.
|
|
133
143
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vimeo2bunny",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "CLI tool to migrate videos from Vimeo to
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "CLI tool to migrate videos from Vimeo to bunny.net Stream",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"vimeo2bunny": "dist/index.js"
|
|
@@ -47,13 +47,13 @@
|
|
|
47
47
|
"url": "https://github.com/BunnyWay/vimeo2bunny/issues"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
+
"@inquirer/prompts": "^7.10.1",
|
|
50
51
|
"axios": "^1.6.0",
|
|
51
52
|
"chalk": "^4.1.2",
|
|
52
53
|
"cli-progress": "^3.12.0",
|
|
53
54
|
"commander": "^11.1.0",
|
|
54
55
|
"conf": "^10.2.0",
|
|
55
56
|
"dotenv": "^16.3.1",
|
|
56
|
-
"@inquirer/prompts": "^3.3.0",
|
|
57
57
|
"ora": "^5.4.1",
|
|
58
58
|
"zod": "^3.22.0"
|
|
59
59
|
},
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"@types/cli-progress": "^3.11.5",
|
|
65
65
|
"@types/node": "^20.10.0",
|
|
66
66
|
"@yao-pkg/pkg": "^5.12.0",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
67
|
+
"ts-node": "^10.9.2",
|
|
68
|
+
"typescript": "^5.3.2"
|
|
69
69
|
},
|
|
70
70
|
"engines": {
|
|
71
71
|
"node": ">=18.0.0"
|