Skip to content

castdrian/ishare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

🚀 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

🛠 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/{{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,

"responseProp": "fileId"

Turns into:

"responseURL": "{{fileId}}"

Example migration

Before:

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

After:

{
    "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 uploader services:

🤝 Contributors

Contributors

🙌 Credits

📜 License

Released under GPL-3.0 by @castdrian