[release] RyukGram v1.2.0

### Features
- **Open Instagram links in app (Safari extension)** — bundled Safari web extension (sideload IPA only). Enable in Safari → Extensions; instagram.com links open in the app.
- **Localization** — every user-facing string flows through a central translation layer. Globe button in Settings; missing keys fall back to English. Ships English only — see the "Translating RyukGram" section in the README to add more.
- **Action buttons** — context-aware menus on feed, reels, and stories (expand, repost, download, copy caption, etc.) with per-context default tap action and carousel/multi-story bulk download
- **Enhanced HD downloads** — up to 1080p via DASH + FFmpegKit with quality picker, preview playback, encoding-speed options, and 720p fallback
- **Repost**, **media viewer**, **media zoom** (long-press), **download pill** (frosted glass, stacks concurrent downloads)
- **Fake location** — overrides CoreLocation app-wide, map picker + saved presets, optional quick-toggle button on the Friends Map
- **Messages-only mode** — strips every tab except DM inbox + profile
- **Launch tab** — pick which tab the app opens to
- Full last active date in DMs — show full date instead of "Active 2h ago"
- Custom date format — 12 formats with per-surface toggles (feed, notes/comments/stories, DMs)
- Send files in DMs (experimental)
- View story mentions
- Hide suggested stories
- Story tray long-press actions — view HD profile picture from the tray menu
- Advance on story reply — auto-skip to next story after sending a reply or reaction
- Mark story as seen on reply or emoji reaction
- Hide metrics (likes, comments, shares counts)
- Hide messages tab
- Hide voice/video call buttons in DM thread header (independent toggles)
- Disable app haptics
- Disable reels tab refresh
- Disable disappearing messages mode in DMs
- Follow indicator — shows whether the profile user follows you
- Copy note text on long press
- Zoom profile photo — long press opens full-screen viewer
- Notes actions — copy text, download GIF/audio from notes long-press menu
- Confirm unfollow
- Feed refresh controls — disable background refresh, home button refresh, and home button scroll

### Improvements
- Default tap action: added copy URL, repost, and view mentions options; dynamic menu generation per context
- Settings pages reordered: General → Feed → Stories → Reels → Messages → Profile → Navigation → Saving → Confirmations
- Fake location picker: native Apple Maps-style UI (search, long-press to drop pin, current location)
- Liquid glass floating tab bar + dynamic sizing
- Upload audio: FFmpegKit re-encode + trim for any audio/video input
- Settings reorganized with per-context action button config; new Profile page
- Highlight cover: full-screen viewer replaces direct download
- Switched HD encoder to `h264_videotoolbox` (hardware) — no GPL FFmpegKit required
- Legacy long-press download deprecated (off by default), replaced by action buttons

### Fixes
- Hide suggested stories no longer removes followed users' stories on scroll
- Settings search bar transparency with liquid glass off; auto-deactivates on push
- HD download cancel: tapping pill aborts in-flight downloads + FFmpeg sessions cleanly
- Download pill stuck state on background/foreground, progress reset per download
- Disappearing messages mode confirmation not firing on swipe
- Detailed color picker not working on story draw `†`
- DM seen toggle menu not updating after tap
- Reel refresh confirmation appearing on first app launch `†`
- Reels action button displacing profile pictures on photo reels
- Disappearing DM media download (expand, share, save to Photos with progress pill)
- Carousel "Download all" not showing item count in feed
- Encoding speed setting being ignored for HD downloads
- Various upstream SCInsta merges (Meta AI hiding, suggested chats hiding, notes tray) — marked `†`

> `†` Merged from upstream [SCInsta](https://github.com/SoCuul/SCInsta) by SoCuul

### Credits
- Thanks to [@erupts0](https://github.com/erupts0) (John) for testing and feature suggestions
- Thanks to [@euoradan](https://t.me/euoradan) (Radan) for experimental Instagram feature flag research
- Safari extension forked/cleaned from [BillyCurtis/OpenInstagramSafariExtension](https://github.com/BillyCurtis/OpenInstagramSafariExtension)

### Known Issues
- Preserved unsent messages can't be removed via "Delete for you"; pull-to-refresh clears them (warning available in settings)
- "Delete for you" detection uses a ~2s window after the local action — a real unsend landing in that window may be missed (rare)
This commit is contained in:
faroukbmiled
2026-04-16 03:03:30 +01:00
parent 9b2c7dc202
commit 86eaa95019
124 changed files with 11523 additions and 1393 deletions
+78 -20
View File
@@ -1,6 +1,6 @@
# RyukGram
A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com/SoCuul/SCInsta) with additional features and fixes.\
`Version v1.1.4` | `Tested on Instagram 424.0.0`
`Version v1.2.0` | `Tested on Instagram 425.0.0`
---
@@ -13,7 +13,7 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
>[!IMPORTANT]
> Which type of device are you planning on installing this tweak on?
> - Jailbroken/TrollStore device -> [Download pre-built tweak](https://github.com/faroukbmiled/RyukGram/releases/latest)
> - Standard iOS device -> Sideload the dylib using Feather or similar
> - Standard iOS device -> Sideload the .deb using Feather or similar
# Features
> Features marked with **\*** are new or improved in RyukGram
@@ -21,6 +21,8 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
### General
- Hide ads
- Hide Meta AI
- Hide metrics (likes, comments, shares counts)
- Disable app haptics
- Copy description
- Copy comment text from long-press menu **\***
- Download GIF comments **\***
@@ -32,6 +34,7 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
- Do not save recent searches
- Use detailed (native) color picker
- Enable liquid glass buttons
- Enable liquid glass surfaces — floating tab bar, dynamic sizing, and other UI elements **\***
- Enable teen app icons
- IG Notes:
- Hide notes tray
@@ -46,12 +49,18 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
### Feed
- Hide stories tray
- Hide suggested stories — removes suggested accounts from the stories tray **\***
- View profile picture from story tray long-press menu (HD via API) **\***
- Hide entire feed
- No suggested posts
- No suggested for you (accounts)
- No suggested reels
- No suggested threads posts
- Disable video autoplay
- Media zoom — long press on media to expand in full-screen viewer **\***
- Custom date format (moved to General > Date format, now supports feed, notes/comments/stories, and DMs) **\***
- Disable background refresh, home button refresh, and home button scroll **\***
- Disable reels tab button refresh **\***
- Hide repost button in feed **\***
### Reels
@@ -72,21 +81,30 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
- Playback toggle synced with overlay during hold/zoom
- Works across IG A/B test variants
### Saving
- Download feed posts (photo + video)
- Download reels
- Download stories
### Action buttons **\***
- Context-aware action menu on feed, reels, and stories (expand, repost, download, copy caption, etc.) **\***
- Configurable default tap action per context **\***
- Carousel and multi-story reel support with bulk download **\***
- Repost via IG's native creation flow **\***
- Full-screen media viewer with zoom and swipe **\***
- Story playback pauses when menus are open **\***
### Profile **\***
- Zoom profile photo — long press to view full-screen with user info **\***
- Save profile picture
- Download buttons on media — tap a button directly on feed posts, reels sidebar, and story overlay **\***
- Download method — choose between download button or long-press gesture **\***
- Download highlight cover from profile long-press menu **\***
- Save action — choose between share sheet or save directly to Photos **\***
- Save to RyukGram album — optional toggle that routes downloads (and share-sheet "Save to Photos" picks) into a dedicated "RyukGram" album in Photos **\***
- Download confirmation — optional confirmation dialog before downloading **\***
- Non-blocking download HUD — pill-style progress at the top, tap to cancel **\***
- Debug fallback — if IG updates break downloads, shows diagnostic info instead of crashing **\***
- *Customize finger count for long-press*
- *Customize hold time for long-press*
- View highlight cover from profile long-press menu **\***
- Profile copy button **\***
- Follow indicator — shows whether the user follows you **\***
- Copy note on long press — long-press the note bubble to copy text **\***
### Saving
- Enhanced HD downloads — up to 1080p via DASH + FFmpegKit **\***
- Quality picker with preview playback **\***
- Fallback to 720p without FFmpegKit **\***
- Download pill with frosted glass, progress bar, bulk counter, success/error states **\***
- Save to RyukGram album — routes downloads into a dedicated album in Photos **\***
- Download confirmation — optional dialog before downloading **\***
- Legacy long-press gesture — deprecated, off by default. Finger count + hold time customizable **\***
### Stories and messages
- Keep deleted messages (preserves unsent messages with visual indicator and notification pill) **\***
@@ -97,13 +115,21 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
- Auto mark seen on send (marks messages as read when you send any message) **\***
- Auto mark seen on typing (marks messages as read the moment you start typing, even when typing status is hidden) **\***
- Mark seen on story like **\***
- Mark seen on story reply — also covers text replies and emoji reactions **\***
- Advance to next story when marking as seen — tapping the eye button auto-skips to the next story **\***
- Advance on story like — liking a story auto-skips to the next one **\***
- Advance on story reply — sending a reply or emoji reaction auto-skips to the next story **\***
- Per-chat read-receipt list with blocking mode — "Block all" (exclude list) or "Block selected only" (include list). Long-press any DM chat to add/remove. Settings page with search, sort, multi-select, and per-entry keep-deleted override **\***
- Send audio as file — send audio files as voice messages from the DM plus menu **\***
- Download voice messages — adds a Download option to the long-press menu on voice messages, saves as M4A via share sheet **\***
- Disable typing status
- Unlimited replay of direct stories
- Disable disappearing messages mode — blocks the swipe-to-enable gesture in DMs **\***
- Hide voice/video call buttons — independent toggles for each, remaining nav items reflow dynamically **\***
- Unlimited replay of direct stories (toggle in eye button menu) **\***
- Full last active date — show full date instead of relative time **\***
- Send files in DMs (experimental) — send select file types via the plus menu **\***
- Notes actions — copy text, download GIF/audio from notes long-press menu **\***
- Copy note text on long press **\***
- Disable view-once limitations
- Disable screenshot detection
- Disable story seen receipt (blocks network upload, toggleable at runtime without restart) **\***
@@ -111,10 +137,10 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
- Manual mark story as seen — button on story overlay to selectively mark stories as seen (button or toggle mode) **\***
- Long-press the story seen button for quick actions **\***
- Per-user story seen-receipt list with blocking mode — "Block all" (exclude list) or "Block selected only" (include list). Manage via 3-dot menu, eye button long-press, or settings list **\***
- Story audio mute/unmute toggle — button on the story overlay and 3-dot menu to toggle audio **\***
- Story audio mute/unmute toggle — button on overlay and in action menu to toggle audio **\***
- View story mentions — bottom sheet with profile pic, follow/unfollow, tap-to-open profile **\***
- Stop story auto-advance — stories won't auto-skip when the timer ends **\***
- Story download button — download directly from the story overlay **\***
- Download disappearing DM media (photos + videos) **\***
- Download disappearing DM media (photos + videos) — expand, share, or save from action menu **\***
- Mark disappearing messages as viewed button **\***
- Upload audio as voice message — send audio files, extract audio from videos, with built-in trim editor **\***
- Disable instants creation
@@ -127,11 +153,15 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
- Hide explore tab
- Hide reels tab
- Hide create tab
- Hide messages tab
- Messages-only mode — keep DM inbox + profile, hide everything else, force launch into inbox **\***
- Launch tab — pick which tab the app opens to (ignored in Messages-only mode) **\***
### Confirm actions
- Confirm like: Posts/Stories
- Confirm like: Reels
- Confirm follow
- Confirm unfollow **\***
- Confirm repost
- Confirm call
- Confirm voice messages
@@ -141,6 +171,12 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
- Confirm changing direct message theme
- Confirm sticker interaction
### Fake location **\***
- Overrides CoreLocation app-wide so any IG feature reading a coord (Friends Map, posts, etc.) gets your chosen location
- MapKit picker with search + reverse-geocoded names
- Saved presets — tap to apply
- Quick toggle button injected into the Friends Map: enable/disable, swap presets, change location, open settings
### Tweak settings **\***
- Search bar in the main settings page — recursively finds any setting across nested pages with a breadcrumb to its location
- Pause playback when opening settings (toggleable) **\***
@@ -151,9 +187,28 @@ A feature-rich iOS tweak for Instagram, forked from [SCInsta](https://github.com
- Import settings from a JSON file
- Searchable, collapsible, editable preview before saving or applying
### Localization **\***
- Multi-language UI — every user-facing string in RyukGram flows through a central translation layer **\***
- Built-in language picker — globe icon in the top-right of Settings; pick System default or any shipped language **\***
- Falls back to English when a translation is missing, so nothing ever breaks **\***
- Currently shipping: **English only** — other languages land as translators submit them (see below).
### Optimization
- Automatically clears unneeded cache folders, reducing the size of your Instagram installation
# Translating RyukGram
Want to see RyukGram in your language? Open a PR — it takes about 30 minutes of copy-paste.
1. Copy `src/Localization/Resources/en.lproj/Localizable.strings` into a new folder named after the language code, e.g. `ar.lproj` (Arabic), `es.lproj` (Spanish), `fr.lproj` (French), `pt.lproj` (Portuguese), `de.lproj` (German), `tr.lproj` (Turkish)…
2. Translate the **right-hand side** of every `"key" = "value";` line. Never touch the left-hand side — it's the lookup key and must match English.
3. Keep format specifiers (`%@`, `%lu`, `%d`, `%1$@`…) exactly as they appear, in the same order. Use positional specifiers (`%1$@ %2$lu`) if your language needs different word order.
4. Keep the same section banners and structure — it makes the diff easy to review.
5. Open a pull request at <https://github.com/faroukbmiled/RyukGram/pulls>. Title it e.g. `l10n: Add Arabic translation`.
Partial translations are welcome — untranslated keys automatically fall back to English at runtime. Ship what you've got, iterate from there.
If you find a string in the app that still renders in English on a translated build, open an issue with a screenshot and we'll add the key.
## Known Issues
- Preserved unsent messages cannot be removed using "Delete for you". Pull to refresh in the DMs tab clears all preserved messages (with optional confirmation if "Warn before clearing on refresh" is enabled).
- "Delete for you" detection uses a ~2 second window after the local action. If a real other-party unsend happens to land in the same window, it may not be preserved. Rare in practice and limited to that specific overlap.
@@ -191,3 +246,6 @@ $ ./build.sh <sideload/rootless/rootful>
- [SCInsta](https://github.com/SoCuul/SCInsta) by [@SoCuul](https://github.com/SoCuul) — original tweak this fork is based on
- [@BandarHL](https://github.com/BandarHL) — creator of the original BHInstagram project
- [@faroukbmiled](https://github.com/faroukbmiled) — RyukGram modifications and additional features
- [@euoradan](https://t.me/euoradan) (Radan) — experimental Instagram feature flag research
- [@erupts0](https://github.com/erupts0) (John) — testing and feature suggestions
- [BillyCurtis/OpenInstagramSafariExtension](https://github.com/BillyCurtis/OpenInstagramSafariExtension) — base for the bundled Safari extension