ishare

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
Flexible Screen Recording
Easy Uploading
High Customizability
Automatic Updates

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

ishare_menu

🛠 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:

{
    "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/",
    "deletionURL": "https://uploader.com/", // 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 ``. There is support for nesting (upload.url) and arrays (files[0].url).

⚙️ Migration from Previous Specification

Click to expand

Key changes

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,

"responseProp": "fileId"

Turns into:

"responseURL": ""

Example migration

Before:

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

After:

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

📤 Compatible Uploader Services

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

🤝 Contributors

Contributors

🙌 Credits

📜 License

Released under GPL-3.0 by @castdrian