sync: localization, readme, issue templates, build-from-release workflow, safari extension

This commit is contained in:
faroukbmiled
2026-09-09 23:56:22 +01:00
parent b65c4bffe0
commit 953ee0de82
16 changed files with 230 additions and 169 deletions
+1 -2
View File
@@ -187,8 +187,7 @@ jobs:
set -euo pipefail
wget "$Instagram_URL" --no-verbose -O packages/com.burbn.instagram.ipa
# The IPA is user-supplied, so its version can differ from the one the
# deb was named after. Name the output after what actually got built.
# The IPA is user-supplied, so its version can differ from the deb's.
PLIST="$(unzip -Z1 packages/com.burbn.instagram.ipa 'Payload/*.app/Info.plist' 2>/dev/null | awk -F/ 'NF==3' | head -1 || true)"
IPA_VER=""
if [ -n "$PLIST" ]; then
+182 -133
View File
@@ -1,156 +1,205 @@
[release] RyukGram v1.3.4
[release] RyukGram v1.4.0
Updated for Instagram 446.0.0.
### ✨ Highlights
- **Setting profiles.** Keep several complete setups under names and switch between them in a tap. Give each one a color and icon, duplicate it, share it as a file, or tie it to an Instagram account so it follows your quick switch
- **MobileConfig browser.** Read and change Instagram's own internal settings from inside the app, with search, copiable details, and export or import of everything you changed
- **Story stats.** Overview numbers over your archive, a views-per-story chart, and a searchable audience list you can filter, sort and pin. Tap anyone to see every story of yours they watched and how they reacted
- **Custom fonts.** Import your own .ttf or .otf files or download from thousands online, then use them across Instagram, RyukGram, or the story text tool
- **Full-resolution photos.** Photos download at their original upload size, often far larger than the copy Instagram hands the app, with a picker showing dimensions, format and file size per option
- **Post and Reel buttons.** Reorder Instagram's own like, comment, share, repost and save buttons, hide any of them, or drop a count without hiding its button
- **View-once media while closed.** Catch disappearing DM media that arrives while Instagram is fully shut, and keep it in the log when it gets unsent
- **Update checker.** RyukGram tells you when a newer release is out, shows what changed, and keeps every past release on its own page under About
### 🆕 New features
- A post or story downloaded to the gallery stays one item you swipe through, with a switch in Gallery Settings
- Always mute starts feed, reels, stories and DMs silent until you tap a speaker or press volume
- Auto-clear cache can run on every launch
- Backup & Restore is now Backup & Profiles, with a profile shortcut on the settings home page
- Backup, restore and storage list MobileConfig changes as their own item
- Backup, restore and storage list the duplicate download list as their own item
- Bring back the old Instagram logo in the feed header
- Call recordings are tagged auto or manual in the list
- Catch view-once media that arrives while Instagram is fully closed and keep it in the log when unsent, off by default, with size and age cleanup
- Confirm before a reaction sends in a chat — pick whether it catches only the accidental double-tap reaction or every reaction you send
- Copied text can open in a sheet first so you can edit it or copy only the part you selected
- Custom fonts for Instagram, RyukGram, or both, set under Theme
- Custom fonts in the story text tool: your imported and device fonts show up next to the built-in ones when you add text to a story
- Deleted messages log entries can open the chat and jump to where the message was
- Deleted messages log: logging view-once media you open is its own switch, off by default
- Disappearing media has its own settings page, and the mark-as-viewed button only shows when view receipts are blocked
- Doom scrolling limit can now cap the grids on audio, effect, template and remix pages too
- Duplicate download check asks before you save the same media twice, and can remove the old gallery copy first
- Expanded view shows the whole reel instead of cropping the sides
- Fake profile options now live on their own page under Profile, with the username, name, counts and badge together
- Fake username and display name for your own account, shown only on your device
- Follow indicator in follower and following lists, with its own style kept separate from the profile one
- Group any gallery files into an album, or split one back apart, from multi-select
- Hide reels in chats so they never show or open in DM threads
- Hide metrics and the two hide repost button switches now live in those pages, per button instead of all at once. Your old settings carry over
- Hold a song in any music picker to download the audio
- Hold any tab in the bottom bar to open a RyukGram screen, picked per tab under Interface > Tab bar > Tab shortcuts. Replaces the separate home, search and DM hold toggles
- Hold controls for reels: force hold-to-pause, force the options menu, or the options menu with picture in picture
- Hold the story eye button to mark every story in a reel as seen, or only the ones up to where you are
- Import your own .ttf or .otf fonts, or download from thousands online
- Indonesian translation added
- Importing a backup can send its settings to a new profile instead of the ones you're using
- Kept unsent messages can be marked with a tag, a faded bubble, a tinted bubble or any mix, with your own tag text, position, size and colors
- Link a profile to Instagram accounts and it switches with the account, with an unlinked profile covering the rest
- Long press a tracked follow request to open the profile, view the picture, filter to that user, copy the username or delete the entry
- Machine ID masking, pinned like the rest of the identifiers, with copy and manual entry
- Manage fonts in bulk from either font picker, with multi select and a delete confirmation
- Mask everything & relaunch rolls every identifier, blocks Apple attestation and clears saved logins in one tap, from Settings or the login screen button
- Messages-only mode now switches in place, no restart, whether you flip it yourself or the schedule does
- MobileConfig changes can be exported and imported from the browser menu
- New MobileConfig browser to read and change Instagram's own internal settings, with search inside a config, copiable config details and a home shortcut entry
- New Post buttons and Reel buttons pages: reorder Instagram's own like, comment, share, repost and save buttons, hide any of them, or drop a count without hiding its button
- New switch to hide the Threads button in the profile header
- New Updates page under About with the update status, what's new in your build, every past release, and switches for the automatic checks
- Optional ryuk_ prefix on saved file names, under Media saving
- Photos can download at their full upload size, often much larger than the copy Instagram hands the app
- Pick the size a photo downloads at, with the dimensions, format and file size on every option
- Playback controls for stories with speed, seek and pause, held from the ⋯ or speaker button or opened from the story menu
#### Setting profiles
- Keep several complete setups under names and switch between them in a tap
- Profiles carry a name, color and icon, and can be duplicated, exported or shared as a file
- Refresh names & photos from the story stats screen and any story viewers list
- Link a profile to Instagram accounts and it switches with the account, with an unlinked profile covering the rest
- Reset a profile to defaults or turn everything off inside it, with a count of what is on and what differs
- Restored MobileConfig changes wait until you turn the browser on
- RyukGram tells you when a newer release is out, shows what changed in it, and links straight to the Telegram channel
- Saved files now share one naming scheme everywhere, stamped with the date the post went up instead of the moment you downloaded it
- Select recordings in a call log to save them to the gallery, share them, share video calls as audio only, or delete them together
- Setting profiles: keep several complete setups under names and switch between them in a tap
- Spacing between story and disappearing media overlay buttons is adjustable with a slider in the layout editor
- Importing a backup can send its settings to a new profile instead of the ones you are using
- Backup & Restore is now Backup & Profiles, with a profile shortcut on the settings home page
#### Fonts and theme
- Import your own .ttf or .otf fonts, or download from thousands online
- Use custom fonts for Instagram, RyukGram, or both, set under Theme
- Your imported and device fonts show up in the story text tool next to the built-in ones
- Manage fonts in bulk from either font picker, with multi-select and a delete confirmation
#### Messages
- Catch view-once media that arrives while Instagram is fully closed and keep it in the log when unsent, off by default, with size and age cleanup
- Logging view-once media you open is now its own switch in the deleted messages log, off by default
- Deleted messages log entries can open the chat and jump to where the message was
- Mark kept unsent messages with a tag, a faded bubble, a tinted bubble or any mix, with your own tag text, position, size and colors
- Confirm before a reaction sends in a chat, catching only the accidental double-tap or every reaction you send
- Hide reels in chats so they never show or open in a thread
- Messages-only mode switches in place with no restart, whether you flip it yourself or the schedule does
- The messages-only schedule can ask first and switch only when you confirm
#### Stories
- Story stats for the archive: overview numbers, a views-per-story chart, and a searchable audience list with filters, sorting and pinned viewers on top
- Story stats compares the last 7 or 30 days against the stretch before it
- Tap someone in the audience list to see every story of yours they watched and what they reacted with
- Refresh names and photos from the story stats screen and any story viewers list
- Playback controls for stories with speed, seek and pause, held from the ⋯ or speaker button or opened from the story menu
- Hold the story eye button to mark a whole reel as seen, or only the stories up to where you are
- Disappearing media has its own settings page, and the mark-as-viewed button only shows when view receipts are blocked
- A slider in the layout editor sets the spacing between story and disappearing media overlay buttons
- Buttons placed next to each other close the gap when one of them is hidden, with a switch to turn it off
#### Feed and reels
- New Post buttons and Reel buttons pages to reorder Instagram's own like, comment, share, repost and save buttons, hide any of them, or drop a count without hiding its button
- Hide metrics and the two hide repost switches moved into those pages, per button instead of all at once, and your old settings carry over
- Tap a reel in the feed to play it in place instead of opening the Reels player, or play first and open on a second tap
- Hold controls for reels: force hold-to-pause, force the options menu, or the options menu with picture in picture
- The reels playback menu gains a pause control
- Expanded view shows the whole reel instead of cropping the sides
- Bring back the old Instagram logo in the feed header
- Status bar tap on the feed can scroll up without refreshing, or be turned off
- Stop the right swipe on the feed from opening the camera
- Story and disappearing media buttons placed next to each other close the gap when one of them is hidden, with a switch to turn it off
- Story stats compares the last 7 or 30 days against the stretch before it
- Story stats for the archive: overview numbers, a views-per-story chart, and a searchable audience list with filters, sorting and pinned viewers on top
- Tap someone in the story stats audience list to see every story of yours they watched and what they reacted with
- Tapping a reel in the feed can play it in place instead of opening the Reels player, or play first and open on a second tap
- The doom-scrolling limit can cap the grids on audio, effect, template and remix pages too
#### Profile
- Fake profile options moved to their own page under Profile, with the username, name, counts and badge together
- Fake your own username and display name, shown only on your device
- Follow indicator in follower and following lists, styled separately from the profile one
- Hide the Threads button in the profile header
- Long press a tracked follow request to open the profile, view the picture, filter to that user, copy the username or delete the entry
#### Downloads and gallery
- Photos download at their full upload size, often much larger than the copy Instagram hands the app
- Pick the size a photo downloads at, with the dimensions, format and file size on every option
- Duplicate check asks before you save the same media twice, and can remove the old gallery copy first
- A post or story downloaded to the gallery stays one item you swipe through, with a switch in Gallery settings
- Group any gallery files into an album, or split one back apart, from multi-select
- Saved files share one naming scheme everywhere, stamped with the date the post went up instead of the moment you downloaded it
- Optional ryuk_ prefix on saved file names, under Media saving
- Hold a song in any music picker to download its audio
#### Calls
- Call recordings are tagged auto or manual in the list
- Select recordings to save them to the gallery, share them, share video calls as audio only, or delete them together
#### Interface and general
- Always mute starts feed, reels, stories and DMs silent until you tap a speaker or press volume
- Copied text can open in a sheet first so you can edit it or copy only the part you selected
- Hold any tab in the bottom bar to open a RyukGram screen, picked per tab under Interface, Tab bar, Tab shortcuts, replacing the separate home, search and DM hold toggles
- New MobileConfig browser to read and change Instagram's own internal settings, with search inside a config, copiable details and a home shortcut entry
- MobileConfig changes can be exported and imported from the browser menu
- Auto-clear cache can run on every launch
- Indonesian translation added
#### Updates
- RyukGram tells you when a newer release is out, shows what changed in it, and links straight to the Telegram channel
- New Updates page under About with the update status, what is new in your build, every past release, and switches for the automatic checks
- Tapping the RyukGram name or version on the settings links sheet opens the Updates page
- The reels playback menu gains a pause control
- The schedule can ask first and only switch when you confirm
- Updated for Instagram 446.0.0
#### Privacy
- Machine ID masking, pinned like the rest of the identifiers, with copy and manual entry
- Mask everything and relaunch rolls every identifier, blocks Apple attestation and clears saved logins in one tap, from Settings or the login screen button
#### Backup
- Backup, restore and storage now list MobileConfig changes and the duplicate download list as their own items
- Restored MobileConfig changes wait until you turn the browser on
### 🛠 Fixes
- A broken translation now falls back to English instead of crashing the screen it is on
- A chat no longer shows as read on your other account after a quick switch
- About keeps showing the available version until you update, so dismissing the popup does not lose it
- App icon changes that fail now say why instead of showing a bare error
- Archived story viewers whose profile picture had stopped loading show up again
- Auto-clear cache no longer skips a whole period when a clear fails or gets cut short, it retries until one goes through
- Auto-clear no longer stalls after a clock change or a restored backup
- Bubble colors stay on the side you picked instead of leaking onto your own messages
- Call buttons hide again on Instagram 444
- Calls no longer keep recording into the next call when auto-record is off
- Changing the app icon now works when Instagram is installed through SideStore or AltStore
- Chat backgrounds keep showing after a theme change on Instagram 444
- Chats marked seen locally now drop the unread bold on accounts where nothing happened before
- Clearing the cache by hand no longer pushes the next auto-clear back
- Color pickers open as a smaller sheet that leaves the page behind it visible
- Confirmation popups no longer let the screen rotate where Instagram itself stays locked
- Data saved by older versions no longer crashes the screen that reads it
- Deleted messages log shows when an old message was originally sent, so it can't be mistaken for a new one
- Downloading a video opened from search saved the cover photo instead, now it downloads the video and offers every quality
- Downloading a whole post or story keeps its items in the order they were posted
- Export and import no longer crash Instagram while scanning what's on the device
- Fake verified badge stays put instead of vanishing on refresh
- File names no longer pick up a second extension or timestamp when the same media is saved again
- Follow confirmation works again on Instagram 443
- Gradient bubble colors no longer vanish when you scroll a chat and come back
- Hiding tabs no longer leaves the tab bar over a reel opened from a chat, or covering the message box on the way back
- Hiding the reels header works again on Instagram 443
- Importing only asks for a restart when what you imported actually needs one
- Instagram no longer launches into a tab you hid
- Instagram Plus story fonts unlock again, and the upgrade prompt stays away
- Icon browser drops the colour pet icons Instagram 446 removed, and a button whose icon is gone shows a marker instead of nothing
- Instants no longer crashes on a video it cannot read, and says so instead
- Instagram Plus story peek now works on DM inbox avatars, not only the stories tray
- Installing over the old pre-rename package now removes it instead of running both
- Kept unsent messages no longer disappear when a chat reloads its older history, survive a restart, and now cover older messages you never opened
- Korean translation reworked to read more naturally
- Link tracking removal now strips Instagram's new igsi parameter and works on links using a custom domain
- Long notification text now wraps and grows the pill instead of being cut off, with a limit and an ellipsis
- Long pressing an avatar outside a profile page opens and saves it in HD too
#### Instagram 443 to 446
- Marking a story seen works again on Instagram 446
- Masked device identifiers now stick: they are written even when Instagram never stored one, re-applied on every launch, and Instagram can no longer swap them back mid-session
- Message peek shows the chat, drops the upgrade row from the menu, and opens the chat when you tap it
- Moving between a chat and a reel no longer stacks a second tab bar under the first
- Old feed logo works again on Instagram 444
- Story text color picker applies your color again on Instagram 446
- Note actions row shows again when you hold a note on Instagram 446
- The icon browser drops the color pet icons Instagram 446 removed, and a button whose icon is gone shows a marker instead of nothing
- Online status updates work again on Instagram 445
- Opening an archived story no longer wipes its view, like and reaction counts, and counts already flattened are rebuilt from the saved viewers
- Reels no longer crash when scrolling away with the playback toggle on
- Release notes render properly now: sub-headings, nested bullets and inline code no longer come through as raw text
- Reverting to your real device ID no longer restores a masked value over it
- Rewinding a reel past its start now jumps to the beginning instead of doing nothing
- Saved profile pictures now keep the quality you see in the preview
- Settings carried over from an old install no longer come back with the wrong value
- Shared links now have the same tracking parameters removed as links opened in the browser
- Sharing from the gallery keeps the name you see in the list instead of a raw id
- Sharing from the expanded view names the file after the account and post date instead of a raw id
- Stories archive stops re-fetching viewers for stories that were deleted on Instagram
- Story date format now applies on accounts where Instagram uses a different timestamp style
- Story text colour picker applies your colour again on Instagram 446
- Story mentions button refreshes again when a story opens on Instagram 445
- Story viewer list header buttons are back on Instagram 445, and the reload button works for the first time
- Tab bar buttons now open the tab they show when some tabs are hidden
- Tapping a photo in a reel carousel now mutes it as intended
- The copy icon is back in the action button menus, Instagram had dropped the artwork it used
- The favourite option on comment GIFs shows its icon properly again
- The explore grid no longer flashes into view when the explore page opens with it hidden
- Call buttons hide again on Instagram 444
- Chat backgrounds keep showing after a theme change on Instagram 444
- The old feed logo works again on Instagram 444
- Follow confirmation works again on Instagram 443
- Hiding the reels header works again on Instagram 443
- The icon browser picks up the icons added in Instagram 441
- The in-call record button now hides with Instagram's own call controls, so tapping to bring them back cannot start a recording
- The profile action button no longer overlaps the username in the profile top bar
- The Snapshots screen no longer crashes in Japanese, Turkish and Chinese
- The story viewers "Default list" option now shows translated in every language
- The unsent notification names the chat instead of saying a message was unsent, when the message itself can't be recovered
- Trimming an HDR video exports instead of failing
- Turning on the messages-only schedule asks to restart right away instead of waiting for the window to start
- Instagram Plus story fonts unlock again, and the upgrade prompt stays away
- Instagram Plus story peek now works on DM inbox avatars, not only the stories tray
- Message peek shows the chat, drops the upgrade row from the menu, and opens the chat when you tap it
#### Messages
- Kept unsent messages no longer disappear when a chat reloads its older history, survive a restart, and now cover older messages you never opened
- Unsent messages recovered from an older part of a chat now show who sent them and get logged with their content
- What's new no longer shows an older release's notes when you are on a build that has not been released yet
- The unsent notification names the chat instead of saying a message was unsent, when the message itself cannot be recovered
- Deleted messages log shows when an old message was originally sent, so it cannot be mistaken for a new one
- A chat no longer shows as read on your other account after a quick switch
- Chats marked seen locally now drop the unread bold on accounts where nothing happened before
- Bubble colors stay on the side you picked instead of leaking onto your own messages
- Gradient bubble colors no longer vanish when you scroll a chat and come back
- Moving between a chat and a reel no longer stacks a second tab bar under the first
- Hiding tabs no longer leaves the tab bar over a reel opened from a chat, or covering the message box on the way back
- Turning on the messages-only schedule asks to restart right away instead of waiting for the window to start
- Your icon order and hidden tabs survive the messages-only switch instead of all coming back
#### Stories and reels
- Opening an archived story no longer wipes its view, like and reaction counts, and counts already flattened are rebuilt from the saved viewers
- Archived story viewers whose profile picture had stopped loading show up again
- The stories archive stops re-fetching viewers for stories that were deleted on Instagram
- The story viewers "Default list" option now shows translated in every language
- Story date format now applies on accounts where Instagram uses a different timestamp style
- Reels no longer crash when scrolling away with the playback toggle on
- Rewinding a reel past its start now jumps to the beginning instead of doing nothing
- Tapping a photo in a reel carousel now mutes it as intended
- Instants no longer crash on a video they cannot read, and say so instead
- The in-call record button now hides with Instagram's own call controls, so tapping to bring them back cannot start a recording
- Calls no longer keep recording into the next call when auto-record is off
#### Downloads and files
- Downloading a video opened from search now saves the video with every quality option, instead of the cover photo
- Downloading a whole post or story keeps its items in the order they were posted
- File names no longer pick up a second extension or timestamp when the same media is saved again
- Sharing from the gallery keeps the name you see in the list instead of a raw id
- Sharing from the expanded view names the file after the account and post date instead of a raw id
- Saved profile pictures keep the quality you see in the preview
- Long pressing an avatar outside a profile page opens and saves it in HD too
- Trimming an HDR video exports instead of failing
#### Feed, profile and interface
- Instagram no longer launches into a tab you hid
- Tab bar buttons now open the tab they show when some tabs are hidden
- The explore grid no longer flashes into view when the explore page opens with it hidden
- The profile action button no longer overlaps the username in the profile top bar
- Fake verified badge stays put instead of vanishing on refresh
- The copy icon is back in the action button menus, Instagram had dropped the artwork it used
- The favorite option on comment GIFs shows its icon properly again
- Color pickers open as a smaller sheet that leaves the page behind it visible
- Confirmation popups no longer let the screen rotate where Instagram itself stays locked
- Long notification text now wraps and grows the pill instead of being cut off, with a limit and an ellipsis
- Link tracking removal strips Instagram's new igsi parameter and works on links using a custom domain
- Shared links now have the same tracking parameters removed as links opened in the browser
#### Privacy and identifiers
- Masked device identifiers now stick: they are written even when Instagram never stored one, re-applied on every launch, and Instagram can no longer swap them back mid-session
- Reverting to your real device ID no longer restores a masked value over it
#### Cache, backup and settings
- Auto-clear cache no longer skips a whole period when a clear fails or gets cut short, it retries until one goes through
- Auto-clear no longer stalls after a clock change or a restored backup
- Clearing the cache by hand no longer pushes the next auto-clear back
- Export and import no longer crash Instagram while scanning what is on the device
- Importing only asks for a restart when what you imported actually needs one
- Settings carried over from an old install no longer come back with the wrong value
- Data saved by older versions no longer crashes the screen that reads it
#### Install, updates and translations
- Changing the app icon now works when Instagram is installed through SideStore or AltStore
- App icon changes that fail now say why instead of showing a bare error
- Installing over the old pre-rename package removes it instead of running both
- The build-from-release workflow names the IPA after the Instagram version you supplied, not the one in the release
- About keeps showing the available version until you update, so dismissing the popup does not lose it
- What's new no longer shows an older release's notes when you are on a build that has not been released yet
- Release notes render properly now, so sub-headings, nested bullets and inline code no longer come through as raw text
- A broken translation falls back to English instead of crashing the screen it is on
- Korean translation reworked to read more naturally
- The Snapshots screen no longer crashes in Japanese, Turkish and Chinese
### ⚠️ Known issues
- Reopening the story text tool highlights your last custom font but starts typing in the default one until you tap it again
- Unfollow confirmation does not appear on profiles on Instagram 446
+21 -21
View File
@@ -4,7 +4,7 @@
**The Instagram tweak for iOS power users.**
`v1.3.4` · Instagram 446.0.0 | Instagram 410.1.0
`v1.4.0` · Instagram 446.0.0 | Instagram 410.1.0
<sub>The Instagram 410 build is for older iOS versions and trails the main build on newer features.</sub>
@@ -105,7 +105,7 @@ Once it is running, open the settings by holding the button at the top of your p
- Stat pills on search and explore, with a page to pick and reorder them
- Anonymous live viewing and toggleable live comments
- Redact RyukGram's own buttons in screenshots and recordings
- Update checker that shows what changed and links to Telegram, with release notes for every past version
- Update checker with what changed, notes for every past release, and a link to Telegram
### Feed
- Grid feed turns your home feed into thumbnails, each with its stats and author
@@ -123,7 +123,7 @@ Once it is running, open the settings by holding the button at the top of your p
- Status bar tap can scroll up only, or do nothing
- Stop the right swipe on the feed from opening the camera
- Confirm before a pull to refresh, or refresh only the stories tray
- Post buttons page to reorder Instagram's own like, comment, share, repost and save buttons, hide any of them, or drop their counts
- Post buttons page to reorder, hide, or drop the counts on Instagram's own like, comment, share, repost and save buttons
### Reels
- Custom tap controls and an auto scroll mode
@@ -132,7 +132,7 @@ Once it is running, open the settings by holding the button at the top of your p
- Always visible scrubber, no auto unmute, and refresh confirmation
- Expanded view that shows the whole reel instead of cropping the sides
- Unlock password locked reels
- Reel buttons page to reorder or hide the sidebar buttons and their counts
- Reel buttons page to reorder, hide, or drop the counts on the sidebar buttons
- Hide the header, friend avatars, and promo pills
- Swipe left to open the author's profile
- Show the repost date
@@ -148,7 +148,7 @@ Once it is running, open the settings by holding the button at the top of your p
- Save a photo story as just the image
- Repost through Instagram's own flow
- Full screen viewer with zoom and swipe
- Drag to arrange your overlay buttons on a live preview, with a slider for the spacing between them
- Drag your overlay buttons into place on a live preview, with a spacing slider
### Profile
- Zoom or save the profile picture
@@ -158,7 +158,7 @@ Once it is running, open the settings by holding the button at the top of your p
- Copy notes, reveal full counts, and fake your username, name, stats and badge
- Hide the Threads button in the header
- Sort and search follower and following lists by mutuals, verified, and more
- Follow request tracker that logs every request, even ones cancelled before you answer
- Follow request tracker that logs every request, even ones canceled before you answer
### Profile analyzer
- Follower and following scans, with mutuals and non followbacks
@@ -166,34 +166,34 @@ Once it is running, open the settings by holding the button at the top of your p
- Change history for name, username, bio, and picture
- Inline and batch follow, unfollow, and remove
- A log of every profile you open, with filters
- Per check toggles, with a badge for gains and losses since your last look
- Per-check toggles, with a badge for gains and losses since your last look
### Saving
- HD downloads up to 1080p, with a quality picker and preview
- Full resolution photos pulled at their original upload size, or picked per size
- Full-resolution photos at their original upload size, or picked per size
- Audio only and raw photo options
- Download manager with live speed, filters, swipe actions, and bulk select
- Download history that survives a restart, with redownload and a keep window
- Duplicate check that warns before you save the same media twice, and can drop the old gallery copy first
- Duplicate check before you save the same media twice, dropping the old gallery copy if you want
- Auto retry for downloads that drop offline
- Save into a dedicated RyukGram album
- Advanced encoding panel for codec, bitrate, resolution, and more
- Advanced encoding panel for codec, bitrate, and resolution
- One clean filename everywhere, stamped with the date the post went up
- Optional ryuk_ prefix on saved filenames
- Optional `ryuk_` prefix on saved filenames
- Optional download confirmation
### Gallery
- A private in app library that every download can mirror into
- A private in-app library that every download can mirror into
- Images, video, audio, and animated GIFs
- Filter by type, source, uploader, date, and favorites, with folders
- Sort by date, name, or size, with images, videos, or favorites first
- Group by user into sections or folders, from 2 to 5 columns
- A downloaded post or story stays one item you swipe through, and you can group or split albums yourself
- A downloaded post or story stays one swipeable item, and you can group or split albums yourself
- Long press a user section to select all their media
- In app preview carousel
- In-app preview carousel
- Pull audio and GIFs straight from the gallery
- Import your own photos, videos and files into the gallery
- Grid tiles show a date chip, long press an item for its date, source and size
- Grid tiles show a date chip, and a long press gives date, source and size
### Stories and messages
- Keep deleted messages, including your own unsends
@@ -203,10 +203,10 @@ Once it is running, open the settings by holding the button at the top of your p
- Catch view-once media that arrives while Instagram is closed
- Log view-once media the moment you open it, off by default
- Activity notifications for reads, online, offline, and typing, set per person
- An activity log that keeps it all as a timeline, filterable and swipe to delete
- An activity log as a timeline, filterable and swipe to delete
- Accurate active status so the green dot turns off the moment someone leaves
- Playback menu for story speed, seek, and pause, held from the story buttons or its menu
- Your own fonts in the story text tool, next to the built in ones
- Your own fonts in the story text tool, next to the built-in ones
- Manual and automatic mark as seen
- Hold the eye button to mark a whole story reel seen, or only up to where you are
- Mark chats seen on your device only, the eye button stays orange until you really send it
@@ -217,7 +217,7 @@ Once it is running, open the settings by holding the button at the top of your p
- Turn off typing status, the vanish swipe, and view once limits
- Hide shared reels in chats so they never show or open in a thread
- Toggle your activity status from a dot in the DMs inbox
- Custom chat backgrounds from an image, video, or GIF, with a built in editor
- Custom chat backgrounds from an image, video, or GIF, with a built-in editor
- Filter, sort, search, and pin story viewers, and see who reacted with what
- Archive your own stories before they expire, viewer list included, per account
- Story stats over your archive
@@ -233,15 +233,15 @@ Once it is running, open the settings by holding the button at the top of your p
### Interface
- A universal notification pill you can place anywhere on screen
- Mirror toasts to the iOS notification centre, in the background or while the app is open
- Mirror toasts to the iOS notification center, in the background or while the app is open
- Reorder and hide tab bar icons on a live tab bar preview
- Hold any tab bar tab to open a RyukGram screen, picked per tab
- Messages only mode, with a daily schedule that switches in place and inbox header shortcuts
- Messages-only mode, with a daily schedule that switches in place and inbox header shortcuts
- Force Instagram into any supported language
- Home shortcut button with new item badges
- Bring back the old Instagram logo in the feed header
- Experimental flags
- MobileConfig browser to read and change Instagram's own internal settings
- MobileConfig browser to read, change, export and import Instagram's own internal settings
### Confirm actions
- Optional confirmations for likes, follows, reposts, calls, comments, and more
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "الترجمة الفيتنامية";
"French translation" = "الترجمة الفرنسية";
"Japanese translation" = "الترجمة اليابانية";
"Indonesian translation" = "الترجمة الإندونيسية";
"Code contributions" = "مساهمات في الكود";
"Following feed mode (from InstaSane)" = "‏وضع يوميات المتابَعين (من InstaSane)";
"latest" = "‏الأحدث‏";
@@ -2375,6 +2375,7 @@
"Vietnamese translation" = "Vietnamese translation";
"French translation" = "French translation";
"Japanese translation" = "Japanese translation";
"Indonesian translation" = "Indonesian translation";
"Code contributions" = "Code contributions";
"Following feed mode (from InstaSane)" = "Following feed mode (from InstaSane)";
"latest" = "latest";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "Traducción al vietnamita";
"French translation" = "Traducción al francés";
"Japanese translation" = "Traducción al japonés";
"Indonesian translation" = "Traducción al indonesio";
"Code contributions" = "Contribuciones de código";
"Following feed mode (from InstaSane)" = "Modo de feed de Siguiendo (de InstaSane)";
"latest" = "última";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "Traduction vietnamienne";
"French translation" = "Traduction française";
"Japanese translation" = "Traduction japonaise";
"Indonesian translation" = "Traduction indonésienne";
"Code contributions" = "Contributions de code";
"Following feed mode (from InstaSane)" = "Mode du fil Abonnements (depuis InstaSane)";
"latest" = "dernière";
@@ -197,7 +197,7 @@
"Suppresses the \"It's time to update Instagram Beta\" nag" = "Menekan pesan \"It's time to update Instagram Beta\" yang mengganggu";
"Tap to apply" = "Ketuk untuk menerapkan";
"The selected icon will be saved and shown here the next time you open this page." = "Ikon yang dipilih akan disimpan dan ditampilkan di sini saat kamu membuka halaman ini lagi.";
"Your sideloading app replaced Instagram's icon list. Set its app icon back to Default, then refresh Instagram to get the icons back." = "Aplikasi sideload-mu mengganti daftar ikon Instagram. Setel ikon aplikasinya kembali ke Default, lalu segarkan Instagram supaya ikonnya kembali.";
"Your sideloading app replaced Instagram's icon list. Set its app icon back to Default, then refresh Instagram to get the icons back." = "Aplikasi sideload-mu mengganti daftar ikon Instagram. Setel ikon aplikasinya kembali ke Default, lalu refresh Instagram supaya ikonnya kembali.";
"Toggle live comments" = "Alihkan komentar live";
"Use detailed color picker" = "Pakai pemilih warna detail";
"Used across feed, stories, reels, and DMs." = "Dipakai di feed, story, reel, dan DM.";
@@ -747,7 +747,7 @@
"Story user list" = "Daftar pengguna story";
"Tapping the eye button to mark a story as seen advances to the next story automatically" = "Mengetuk tombol mata untuk menandai story sudah dilihat akan otomatis melanjutkan ke story berikutnya";
"This will send a story view receipt." = "Ini akan mengirim tanda tonton story.";
"This will send %ld story view receipts." = "Ini akan mengirim %ld tanda telah melihat story.";
"This will send %ld story view receipts." = "Ini akan mengirim %ld tanda tonton story.";
"View story mentions" = "Lihat sebutan story";
"Which stories get seen-receipt blocking" = "Story mana yang mendapat pemblokiran tanda baca";
"Text tool" = "Alat teks";
@@ -932,9 +932,9 @@
"Show full date instead of \"Active 2h ago\"" = "Tampilkan tanggal lengkap, bukan \"Aktif 2 jam lalu\"";
"Shows a button in DM threads to add/remove chats from the list. Long-press for more options" = "Menampilkan tombol di thread DM untuk menambah/menghapus chat dari daftar. Tekan lama untuk opsi lebih lanjut";
"Shows a notification pill when a message is unsent" = "Menampilkan pil notifikasi saat pesan dibatalkan";
"Block view receipts" = "Blokir tanda telah dilihat";
"Block view receipts" = "Blokir tanda tonton";
"Instagram reports a view when the media finishes playing. Block it and the media stays unopened until you send the receipt yourself." = "Instagram melaporkan tampilan begitu media selesai diputar. Blokir itu dan medianya tetap belum terbuka sampai kamu mengirim tandanya sendiri.";
"Available while view receipts are blocked." = "Tersedia selama tanda telah dilihat diblokir.";
"Available while view receipts are blocked." = "Tersedia selama tanda tonton diblokir.";
"View-once photos and videos, and their buttons" = "Foto dan video sekali lihat, beserta tombolnya";
"Unsent message notification" = "Notifikasi pesan dibatalkan";
"Voice messages" = "Pesan suara";
@@ -1149,7 +1149,7 @@
"Start time" = "Waktu mulai";
"End time" = "Waktu selesai";
"Switch into Messages-only on its own during a time window" = "Beralih ke mode hanya pesan secara otomatis selama jangka waktu tertentu";
"Turn Messages-only on by itself during a daily window (e.g. 10:00 PM 6:00 AM) using the toggles above." = "Nyalakan Hanya pesan secara otomatis pada jendela waktu harian (misalnya 22.00 06.00) lewat sakelar di atas.";
"Turn Messages-only on by itself during a daily window (e.g. 10:00 PM 6:00 AM) using the toggles above." = "Aktifkan Hanya pesan secara otomatis pada jendela waktu harian (misalnya 22.00 06.00) lewat sakelar di atas.";
"Active now · ends %@" = "Aktif sekarang · berakhir %@";
"Next window starts %@" = "Jangka waktu berikutnya dimulai %@";
"Messages-only starting" = "Mode hanya pesan dimulai";
@@ -1497,7 +1497,7 @@
"Overwrite" = "Timpa";
"Profiles" = "Profil";
"Replaces it with your current settings." = "Menggantinya dengan pengaturanmu saat ini.";
"Reset %@ to defaults?" = "Setel ulang %@ ke bawaan?";
"Reset %@ to defaults?" = "Reset %@ ke bawaan?";
"Saved as %@" = "Disimpan sebagai %@";
"Saved as a profile. Your current settings stay as they are." = "Disimpan sebagai profil. Pengaturanmu saat ini tetap seperti sekarang.";
"Saves your current settings and switches to it." = "Menyimpan pengaturanmu saat ini lalu beralih ke sana.";
@@ -1508,7 +1508,7 @@
"Switch" = "Beralih";
"Switching to a ticked account switches to this profile." = "Beralih ke akun yang dicentang akan beralih ke profil ini.";
"Tap to switch. Changes stay in the profile in use. Swipe or hold for more." = "Ketuk untuk beralih. Perubahan tersimpan di profil yang sedang dipakai. Geser atau tahan untuk opsi lain.";
"Turn everything off in %@?" = "Matikan semuanya di %@?";
"Turn everything off in %@?" = "Matikan semua di %@?";
"Turn off" = "Matikan";
"Use for other accounts" = "Pakai untuk akun lain";
"Your settings aren't saved to a profile." = "Pengaturanmu belum disimpan ke profil mana pun.";
@@ -1602,10 +1602,10 @@
"MobileConfig overrides were reset after repeated crashes on launch" = "Penimpaan MobileConfig disetel ulang setelah crash berulang saat dibuka";
"Overridden" = "Ditimpa";
"Search name or config number" = "Cari nama atau nomor config";
"Reset all overrides" = "Setel ulang semua penimpaan";
"Reset all overrides" = "Reset semua penimpaan";
"Parameter:" = "Parameter:";
"Reset %lu override(s)" = "Setel ulang %lu penimpaan";
"Reset all overrides?" = "Setel ulang semua penimpaan?";
"Reset %lu override(s)" = "Reset %lu penimpaan";
"Reset all overrides?" = "Reset semua penimpaan?";
"%lu override(s) will be removed." = "%lu penimpaan akan dihapus.";
"param" = "param";
"params" = "param";
@@ -1864,8 +1864,8 @@
"VC not found" = "VC tidak ditemukan";
"Video from Library" = "Video dari Pustaka";
"Views will be reported" = "Tampilan akan dilaporkan";
"Disappearing media: views reported" = "Media sementara: tampilan dilaporkan";
"Disappearing media: views blocked" = "Media sementara: tampilan diblokir";
"Disappearing media: views reported" = "Media menghilang: tampilan dilaporkan";
"Disappearing media: views blocked" = "Media menghilang: tampilan diblokir";
//////////////////////////////////////////////////////////////////////////////
// CHAT BACKGROUNDS //
@@ -2375,6 +2375,7 @@
"Vietnamese translation" = "Terjemahan bahasa Vietnam";
"French translation" = "Terjemahan bahasa Prancis";
"Japanese translation" = "Terjemahan bahasa Jepang";
"Indonesian translation" = "Terjemahan bahasa Indonesia";
"Code contributions" = "Kontribusi kode";
"Following feed mode (from InstaSane)" = "Mode feed mengikuti (dari InstaSane)";
"latest" = "terbaru";
@@ -3323,7 +3324,7 @@
"Drop every capture each time you open the app" = "Buang semua tangkapan setiap kali kamu membuka aplikasi";
"Trim each account by size and age" = "Pangkas tiap akun berdasarkan ukuran dan usia";
"Kept per account. A capture is dropped once it passes either limit." = "Disimpan per akun. Sebuah tangkapan dibuang begitu melewati salah satu batas.";
"With both off, captures are kept until they're unsent. Turning one on turns the other off. Anything actually unsent is saved to the log first and is never cleaned here." = "Kalau keduanya mati, tangkapan disimpan sampai dibatalkan. Menyalakan salah satu akan mematikan yang lain. Apa pun yang benar-benar dibatalkan disimpan ke log lebih dulu dan tidak pernah dibersihkan di sini.";
"With both off, captures are kept until they're unsent. Turning one on turns the other off. Anything actually unsent is saved to the log first and is never cleaned here." = "Kalau keduanya mati, tangkapan disimpan sampai dibatalkan. Mengaktifkan salah satu akan mematikan yang lain. Apa pun yang benar-benar dibatalkan disimpan ke log lebih dulu dan tidak pernah dibersihkan di sini.";
"Clear when I open Instagram" = "Hapus saat aku membuka Instagram";
"Keep within size / age limits" = "Jaga dalam batas ukuran / usia";
"View-once cache" = "Cache sekali lihat";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "ベトナム語翻訳";
"French translation" = "フランス語翻訳";
"Japanese translation" = "日本語翻訳";
"Indonesian translation" = "インドネシア語翻訳";
"Code contributions" = "コード貢献";
"Following feed mode (from InstaSane)" = "フォロー中フィードモード(InstaSane由来)";
"latest" = "最新";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "베트남어 번역";
"French translation" = "프랑스어 번역";
"Japanese translation" = "일본어 번역";
"Indonesian translation" = "인도네시아어 번역";
"Code contributions" = "코드 기여";
"Following feed mode (from InstaSane)" = "팔로잉 피드 모드 (InstaSane 기반)";
"latest" = "최신";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "Tradução vietnamita";
"French translation" = "Tradução francesa";
"Japanese translation" = "Tradução em japonês";
"Indonesian translation" = "Tradução em indonésio";
"Code contributions" = "Contribuições de código";
"Following feed mode (from InstaSane)" = "Seguindo o modo de feed (do InstaSane)";
"latest" = "mais recente";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "Вьетнамский перевод";
"French translation" = "Французский перевод";
"Japanese translation" = "Японский перевод";
"Indonesian translation" = "Индонезийский перевод";
"Code contributions" = "Вклад в код";
"Following feed mode (from InstaSane)" = "Режим ленты Подписки (из InstaSane)";
"latest" = "последняя";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "Vietnamca çeviri";
"French translation" = "Fransızca çeviri";
"Japanese translation" = "Japonca çeviri";
"Indonesian translation" = "Endonezce çeviri";
"Code contributions" = "Kod katkıları";
"Following feed mode (from InstaSane)" = "Takip Edilenler akış modu (InstaSane'den)";
"latest" = "en son";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "Bản dịch tiếng Việt";
"French translation" = "Bản dịch tiếng Pháp";
"Japanese translation" = "Bản dịch tiếng Nhật";
"Indonesian translation" = "Bản dịch tiếng Indonesia";
"Code contributions" = "Đóng góp mã";
"Following feed mode (from InstaSane)" = "Chế độ bảng tin Đang theo dõi (từ InstaSane)";
"latest" = "mới nhất";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "越南语翻译";
"French translation" = "法语翻译";
"Japanese translation" = "日语翻译";
"Indonesian translation" = "印尼语翻译";
"Code contributions" = "代码贡献";
"Following feed mode (from InstaSane)" = "正在关注动态模式(来自 InstaSane";
"latest" = "最新";
@@ -2345,6 +2345,7 @@
"Vietnamese translation" = "越南語翻譯";
"French translation" = "法語翻譯";
"Japanese translation" = "日語翻譯";
"Indonesian translation" = "印尼語翻譯";
"Code contributions" = "程式碼貢獻";
"Following feed mode (from InstaSane)" = "追蹤中動態模式(來自 InstaSane";
"latest" = "最新";