mirror of
https://github.com/wukko/cobalt.git
synced 2025-05-29 13:00:12 +02:00
merge: docs & test updates from main
This commit is contained in:
commit
1c34d2daff
11
README.md
11
README.md
@ -14,9 +14,13 @@
|
|||||||
<a href="https://discord.gg/pQPt8HBUPu">
|
<a href="https://discord.gg/pQPt8HBUPu">
|
||||||
💬 community discord server
|
💬 community discord server
|
||||||
</a>
|
</a>
|
||||||
|
<br/>
|
||||||
<a href="https://x.com/justusecobalt">
|
<a href="https://x.com/justusecobalt">
|
||||||
🐦 twitter
|
🐦 twitter
|
||||||
</a>
|
</a>
|
||||||
|
<a href="https://bsky.app/profile/cobalt.tools">
|
||||||
|
🦋 bluesky
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<br/>
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
@ -34,11 +38,10 @@ this monorepo includes source code for api, frontend, and related packages:
|
|||||||
it also includes documentation in the [docs tree](/docs/):
|
it also includes documentation in the [docs tree](/docs/):
|
||||||
- [cobalt api documentation](/docs/api.md)
|
- [cobalt api documentation](/docs/api.md)
|
||||||
- [how to run a cobalt instance](/docs/run-an-instance.md)
|
- [how to run a cobalt instance](/docs/run-an-instance.md)
|
||||||
- [how to protect a cobalt instance](/docs/protect-an-instance.md)
|
- [how to protect a cobalt instance](/docs/protect-an-instance.md) (recommended if you host a public instance)
|
||||||
- [how to configure a cobalt instance for youtube](/docs/configure-for-youtube.md)
|
|
||||||
|
|
||||||
### thank you
|
### thank you
|
||||||
cobalt is sponsored by [royalehosting.net](https://royalehosting.net/?partner=cobalt) and the main processing servers are hosted on their network. we really appreciate their kindness and support!
|
cobalt is sponsored by [royalehosting.net](https://royalehosting.net/?partner=cobalt). a part of our infrastructure is hosted on their network. we really appreciate their kindness and support!
|
||||||
|
|
||||||
### ethics
|
### ethics
|
||||||
cobalt is a tool that makes downloading public content easier. it takes **zero liability**.
|
cobalt is a tool that makes downloading public content easier. it takes **zero liability**.
|
||||||
@ -50,7 +53,7 @@ it can only download free & publicly accessible content.
|
|||||||
same content can be downloaded via dev tools of any modern web browser.
|
same content can be downloaded via dev tools of any modern web browser.
|
||||||
|
|
||||||
### contributing
|
### contributing
|
||||||
thank you for considering making a contribution to cobalt! please check the [contributing guidelines here](/CONTRIBUTING.md) before making a pull request.
|
if you're considering contributing to cobalt, first of all, thank you! check the [contribution guidelines here](/CONTRIBUTING.md) before getting started, they'll help you do your best right away.
|
||||||
|
|
||||||
### licenses
|
### licenses
|
||||||
for relevant licensing information, see the [api](api/README.md) and [web](web/README.md) READMEs.
|
for relevant licensing information, see the [api](api/README.md) and [web](web/README.md) READMEs.
|
||||||
|
@ -11,12 +11,9 @@ we recommend [deploying your own instance](/docs/run-an-instance.md) if you wish
|
|||||||
|
|
||||||
you can read [the api documentation here](/docs/api.md).
|
you can read [the api documentation here](/docs/api.md).
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> the v7 public api (/api/json) will be shut down on **november 11th, 2024**.
|
|
||||||
> you can access documentation for it [here](https://github.com/imputnet/cobalt/blob/7/docs/api.md).
|
|
||||||
|
|
||||||
## supported services
|
## supported services
|
||||||
this list is not final and keeps expanding over time. if support for a service you want is missing, create an issue (or a pull request 👀).
|
this list is not final and keeps expanding over time!
|
||||||
|
if the desired service isn't supported yet, feel free to create an appropriate issue (or a pull request 👀).
|
||||||
|
|
||||||
| service | video + audio | only audio | only video | metadata | rich file names |
|
| service | video + audio | only audio | only video | metadata | rich file names |
|
||||||
| :-------- | :-----------: | :--------: | :--------: | :------: | :-------------: |
|
| :-------- | :-----------: | :--------: | :--------: | :------: | :-------------: |
|
||||||
@ -39,12 +36,13 @@ this list is not final and keeps expanding over time. if support for a service y
|
|||||||
| twitter/x | ✅ | ✅ | ✅ | ➖ | ➖ |
|
| twitter/x | ✅ | ✅ | ✅ | ➖ | ➖ |
|
||||||
| vimeo | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| vimeo | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| vk videos & clips | ✅ | ❌ | ✅ | ✅ | ✅ |
|
| vk videos & clips | ✅ | ❌ | ✅ | ✅ | ✅ |
|
||||||
|
| xiaohongshu | ✅ | ✅ | ✅ | ➖ | ➖ |
|
||||||
| youtube | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| youtube | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
|
||||||
| emoji | meaning |
|
| emoji | meaning |
|
||||||
| :-----: | :---------------------- |
|
| :-----: | :---------------------- |
|
||||||
| ✅ | supported |
|
| ✅ | supported |
|
||||||
| ➖ | impossible/unreasonable |
|
| ➖ | unreasonable/impossible |
|
||||||
| ❌ | not supported |
|
| ❌ | not supported |
|
||||||
|
|
||||||
### additional notes or features (per service)
|
### additional notes or features (per service)
|
||||||
@ -71,36 +69,35 @@ as long as you:
|
|||||||
- provide a link to the license and indicate if changes to the code were made, and
|
- provide a link to the license and indicate if changes to the code were made, and
|
||||||
- release the code under the **same license**
|
- release the code under the **same license**
|
||||||
|
|
||||||
## acknowledgements
|
## open source acknowledgements
|
||||||
### ffmpeg
|
### ffmpeg
|
||||||
cobalt heavily relies on ffmpeg for converting and merging media files. it's an absolutely amazing piece of software offered for anyone for free, yet doesn't receive as much credit as it should.
|
cobalt relies on ffmpeg for muxing and encoding media files. ffmpeg is absolutely spectacular and we're privileged to have an ability to use it for free, just like anyone else. we believe it should be way more recognized.
|
||||||
|
|
||||||
you can [support ffmpeg here](https://ffmpeg.org/donations.html)!
|
you can [support ffmpeg here](https://ffmpeg.org/donations.html)!
|
||||||
|
|
||||||
#### ffmpeg-static
|
|
||||||
we use [ffmpeg-static](https://github.com/eugeneware/ffmpeg-static) to get binaries for ffmpeg depending on the platform.
|
|
||||||
|
|
||||||
you can support the developer via various methods listed on their github page! (linked above)
|
|
||||||
|
|
||||||
### youtube.js
|
### youtube.js
|
||||||
cobalt relies on [youtube.js](https://github.com/LuanRT/YouTube.js) for interacting with the innertube api, it wouldn't have been possible without it.
|
cobalt relies on **[youtube.js](https://github.com/LuanRT/YouTube.js)** for interacting with youtube's innertube api, it wouldn't have been possible without this package.
|
||||||
|
|
||||||
you can support the developer via various methods listed on their github page! (linked above)
|
you can support the developer via various methods listed on their github page!
|
||||||
|
(linked above)
|
||||||
|
|
||||||
### many others
|
### many others
|
||||||
cobalt also depends on:
|
cobalt-api also depends on:
|
||||||
|
|
||||||
- [content-disposition-header](https://www.npmjs.com/package/content-disposition-header) to simplify the provision of `content-disposition` headers.
|
- **[content-disposition-header](https://www.npmjs.com/package/content-disposition-header)** to simplify the provision of `content-disposition` headers.
|
||||||
- [cors](https://www.npmjs.com/package/cors) to manage cross-origin resource sharing within expressjs.
|
- **[cors](https://www.npmjs.com/package/cors)** to manage cross-origin resource sharing within expressjs.
|
||||||
- [dotenv](https://www.npmjs.com/package/dotenv) to load environment variables from the `.env` file.
|
- **[dotenv](https://www.npmjs.com/package/dotenv)** to load environment variables from the `.env` file.
|
||||||
- [express](https://www.npmjs.com/package/express) as the backbone of cobalt servers.
|
- **[express](https://www.npmjs.com/package/express)** as the backbone of cobalt servers.
|
||||||
- [express-rate-limit](https://www.npmjs.com/package/express-rate-limit) to rate limit api endpoints.
|
- **[express-rate-limit](https://www.npmjs.com/package/express-rate-limit)** to rate limit api endpoints.
|
||||||
- [hls-parser](https://www.npmjs.com/package/hls-parser) to parse `m3u8` playlists for certain services.
|
- **[ffmpeg-static](https://www.npmjs.com/package/ffmpeg-static)** to get binaries for ffmpeg depending on the platform.
|
||||||
- [ipaddr.js](https://www.npmjs.com/package/ipaddr.js) to parse ip addresses (for rate limiting).
|
- **[hls-parser](https://www.npmjs.com/package/hls-parser)** to parse HLS playlists according to spec (very impressive stuff).
|
||||||
- [nanoid](https://www.npmjs.com/package/nanoid) to generate unique (temporary) identifiers for each requested stream.
|
- **[ipaddr.js](https://www.npmjs.com/package/ipaddr.js)** to parse ip addresses (used for rate limiting).
|
||||||
- [psl](https://www.npmjs.com/package/psl) as the domain name parser.
|
- **[nanoid](https://www.npmjs.com/package/nanoid)** to generate unique identifiers for each requested tunnel.
|
||||||
- [set-cookie-parser](https://www.npmjs.com/package/set-cookie-parser) to parse cookies that cobalt receives from certain services.
|
- **[set-cookie-parser](https://www.npmjs.com/package/set-cookie-parser)** to parse cookies that cobalt receives from certain services.
|
||||||
- [undici](https://www.npmjs.com/package/undici) for making http requests.
|
- **[undici](https://www.npmjs.com/package/undici)** for making http requests.
|
||||||
- [url-pattern](https://www.npmjs.com/package/url-pattern) to match provided links with supported patterns.
|
- **[url-pattern](https://www.npmjs.com/package/url-pattern)** to match provided links with supported patterns.
|
||||||
|
- **[zod](https://www.npmjs.com/package/zod)** to lock down the api request schema.
|
||||||
|
- **[@datastructures-js/priority-queue](https://www.npmjs.com/package/@datastructures-js/priority-queue)** for sorting stream caches for future clean up (without redis).
|
||||||
|
- **[@imput/psl](https://www.npmjs.com/package/@imput/psl)** as the domain name parser, our fork of [psl](https://www.npmjs.com/package/psl).
|
||||||
|
|
||||||
...and many other packages that these packages rely on.
|
...and many other packages that these packages rely on.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "1080p video",
|
"name": "1080p video",
|
||||||
"url": "https://www.loom.com/share/313bf71d20ca47b2a35b6634cefdb761",
|
"url": "https://www.loom.com/share/d165fd054a294d8a8587807bcc50c885",
|
||||||
"params": {},
|
"params": {},
|
||||||
"expected": {
|
"expected": {
|
||||||
"code": 200,
|
"code": 200,
|
||||||
@ -10,7 +10,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "1080p video (muted)",
|
"name": "1080p video (muted)",
|
||||||
"url": "https://www.loom.com/share/313bf71d20ca47b2a35b6634cefdb761",
|
"url": "https://www.loom.com/share/d165fd054a294d8a8587807bcc50c885",
|
||||||
"params": {
|
"params": {
|
||||||
"downloadMode": "mute"
|
"downloadMode": "mute"
|
||||||
},
|
},
|
||||||
@ -21,7 +21,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "1080p video (audio only)",
|
"name": "1080p video (audio only)",
|
||||||
"url": "https://www.loom.com/share/313bf71d20ca47b2a35b6634cefdb761",
|
"url": "https://www.loom.com/share/d165fd054a294d8a8587807bcc50c885",
|
||||||
"params": {
|
"params": {
|
||||||
"downloadMode": "audio"
|
"downloadMode": "audio"
|
||||||
},
|
},
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "regular gif",
|
"name": "regular gif",
|
||||||
"url": "https://www.pinterest.com/pin/814447913881127862/",
|
"url": "https://www.pinterest.com/pin/643170390530326178/",
|
||||||
"params": {},
|
"params": {},
|
||||||
"expected": {
|
"expected": {
|
||||||
"code": 200,
|
"code": 200,
|
||||||
@ -77,7 +77,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "regular gif (.ca TLD)",
|
"name": "regular gif (.ca TLD)",
|
||||||
"url": "https://www.pinterest.ca/pin/814447913881127862/",
|
"url": "https://www.pinterest.ca/pin/643170390530326178/",
|
||||||
"params": {},
|
"params": {},
|
||||||
"expected": {
|
"expected": {
|
||||||
"code": 200,
|
"code": 200,
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "one photo",
|
"name": "one photo",
|
||||||
"url": "https://www.xiaohongshu.com/explore/6788b56200000000210008c8?xsec_token=CBSDiWU4N-DgirHrOVbIWrlKfUNFHKwm-Wsjqz7dIMc_k",
|
"url": "https://www.xiaohongshu.com/explore/676e132d000000000b016f68?xsec_token=ABRv6LKzizOFeSaf2HnnBkdBqniB5Ak1fI8tMAHzO31jA",
|
||||||
"params": {},
|
"params": {},
|
||||||
"expected": {
|
"expected": {
|
||||||
"code": 200,
|
"code": 200,
|
||||||
|
@ -25,7 +25,7 @@ no ads, trackers, paywalls, or other nonsense. just a convenient web app that wo
|
|||||||
cobalt was created for public benefit, to protect people from ads and malware pushed by its alternatives.
|
cobalt was created for public benefit, to protect people from ads and malware pushed by its alternatives.
|
||||||
we believe that the best software is safe, open, and accessible.
|
we believe that the best software is safe, open, and accessible.
|
||||||
|
|
||||||
it's possible to keep the main instances up thanks to our long-standing infrastructure partner, [royalehosting.net]({partners.royalehosting})!
|
a part of our infrastructure is provided by our long-standing partner, [royalehosting.net]({partners.royalehosting})!
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="privacy">
|
<section id="privacy">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user