vimeo2bunny 1.0.0 → 1.0.2
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 +45 -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,12 +137,30 @@ 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
|
|
|
134
144
|
**"Rate limited"** — Handled automatically with exponential backoff. No action needed.
|
|
135
145
|
|
|
146
|
+
## Legal Notice
|
|
147
|
+
|
|
148
|
+
This tool is provided as-is under the MIT License. It is not affiliated with, endorsed by, or sponsored by Vimeo, Inc.
|
|
149
|
+
|
|
150
|
+
"Vimeo" is a registered trademark of Vimeo, Inc. Use of the name is purely descriptive and refers to the service this tool interacts with.
|
|
151
|
+
|
|
152
|
+
### Your Responsibilities
|
|
153
|
+
|
|
154
|
+
By using this tool, you acknowledge and agree that:
|
|
155
|
+
|
|
156
|
+
- **You are migrating your own content.** You must have the legal right to download and transfer any videos you migrate. Do not use this tool to access or transfer content you do not own or have authorization to move.
|
|
157
|
+
- **You are responsible for compliance with Vimeo's terms.** This includes Vimeo's Terms of Service, API License Addendum, and any plan-specific restrictions. You are using your own Vimeo API credentials and acting on your own behalf.
|
|
158
|
+
- **You are responsible for compliance with all applicable laws,** including copyright and data protection regulations in your jurisdiction.
|
|
159
|
+
|
|
160
|
+
bunny.net provides this tool for convenience only and makes no representations regarding its compatibility with Vimeo's terms of service, which may change at any time. bunny.net assumes no liability for any consequences arising from your use of this tool, including but not limited to account suspension or termination by Vimeo.
|
|
161
|
+
|
|
162
|
+
If you are unsure whether your use case complies with Vimeo's terms, consult Vimeo's documentation or seek legal advice before proceeding.
|
|
163
|
+
|
|
136
164
|
## License
|
|
137
165
|
|
|
138
166
|
MIT — see [LICENSE](LICENSE)
|
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.2",
|
|
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"
|