An open API service indexing awesome lists of open source software.

https://github.com/itoolio/ishare

experience the clean and unbloated screen capture utility for macOS
https://github.com/itoolio/ishare

hacktoberfest macos macos-app sharex

Last synced: 4 months ago
JSON representation

experience the clean and unbloated screen capture utility for macOS

Awesome Lists containing this project

README

          



ishare ishare logo


The definitive screen capture utility for macOS, designed with simplicity and efficiency in mind.



Sponsor


Ko-FI


Discord


GitHub



Build and Release App


GitHub release


License


issues


stars

---



Download ishare




Download Latest Release




Translate Project

## 🚀 Features

Versatile Screen Capture

- **Custom Region**: Instantly and easily define and capture specific portions of your screen.
- **Window Capture**: Capture individual application windows without any clutter.
- **Entire Display Capture**: Snapshot your whole screen with a single action.

Flexible Screen Recording

- **Video Recording**: Record videos of entire screens or specific windows.
- **GIF Recording**: Capture your moments in GIF format, perfect for quick shares.
- **Customizable Codecs and Compression**: Fine-tune the parameters of the output video files.

Easy Uploading

- **Custom Upload Destinations**: Define your own server or service to upload your media.
- **Built-in Imgur Uploader**: Quickly upload your results to Imgur automatically.

High Customizability

- **Custom Keybinds**: Set keyboard shortcuts that match your workflow.
- **File Format Preferences**: Choose the formats for your screenshots (e.g. PNG, JPG) and recordings.
- **Custom File Naming**: Define your own prefix for filenames, so you always know which app took the shot.
- **Custom Save Path**: Decide where exactly on your system you want to save your captures and recordings.
- **Application Exclusions**: Exclude specific apps from being recorded.

Automatic Updates

Always stay on the cutting edge with built-in automatic updates.

![ishare_menu](https://github.com/iGerman00/ishare/assets/36676880/3a546afb-90ee-4b85-8b38-6029ccd67565)

## 🛠 Custom Uploader Setup

By default, ishare supports and opens `.iscu` files for configuration. They are text files containing JSON data according to the `iscu` spec:

**Note:** Version 2.0.0 introduces breaking changes. Follow the migration guide for updates and consider reinstallation if you encounter issues post-update.


📝 Specification (2.0.0 and newer)

The custom uploader specification since version 2.0.0+ has the following structure:

```json
{
"name": "Custom Uploader Name",
"requestURL": "https://uploader.com/upload",
"headers": { // optional
"Authorization": "Bearer YOUR_AUTH_TOKEN"
},
"formData": { // optional
"additionalData": "value"
},
"fileFormName": "file", // optional
"requestBodyType": "multipartFormData", // optional, can be "multipartFormData" or "binary"
"responseURL": "https://uploader.com/{{jsonproperty}}",
"deletionURL": "https://uploader.com/{{jsonproperty}}", // optional
"deleteRequestType": "DELETE" // optional, can be "DELETE" or "GET"
}
```

All properties are case insensitive.

This new specification allows for more dynamic URL construction and handles deletion URLs.
For `responseURL` and `deletionURL`, JSON properties that are derived from the response payload can be defined as `{{jsonProperty}}`. There is support for nesting (`upload.url`) and arrays (`files[0].url`).

## ⚙️ Migration from Previous Specification

Click to expand

### Key changes

- `responseURL` replaces `responseProp`.
- New optional field `deletionURL`.
- Updated URL templating syntax.

### Migration steps

1. Replace `responseProp` with `responseURL`, ensuring the URL includes placeholders for dynamic values.
2. If your service provides a deletion link, add the `deletionURL` field.
3. Update URL placeholders to match the new syntax:

For example,

```json
"responseProp": "fileId"
```

Turns into:

```json
"responseURL": "{{fileId}}"
```

### Example migration

Before:

```json
{
"name": "uploader",
"requestURL": "https://uploader.com/upload",
"responseProp": "fileUrl"
}
```

After:

```json
{
"name": "uploader",
"requestURL": "https://uploader.com/upload",
"responseURL": "{{fileUrl}}" // also supported: "https://uploader.com/{{fileId}}"
}
```

## 📤 Compatible Uploader Services

ishare is confirmed to be compatible with the following upload services:

- [chibisafe](https://github.com/chibisafe/chibisafe)
- [copyparty](https://github.com/9001/copyparty)
- [lumen](https://github.com/ChecksumDev/lumen)
- [zipline](https://github.com/diced/zipline)
- [discord webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks)

## 🤝 Contributors

[![Contributors](https://contrib.rocks/image?repo=castdrian/ishare)](https://github.com/castdrian/ishare/graphs/contributors)

## 🙌 Credits

- Special thanks to [Inna Strazhnik](https://www.behance.net/strazhnik) for the app icon

## 📜 License

Released under [GPL-3.0](/LICENSE) by [@castdrian](https://github.com/castdrian)