[GH-ISSUE #35] Output dir feature to organize downloaded files into user-specific subdirectories #24

Closed
opened 2026-02-27 20:05:02 +03:00 by kerem · 13 comments
Owner

Originally created by @misiektoja on GitHub (Jan 6, 2026).
Original GitHub issue: https://github.com/misiektoja/instagram_monitor/issues/35

Is there a way to tell the script where to save the stuff? Right now it seems to just dump everything into my User folder. I'm a bit of an organization freak and would love to be able to have it auto save to organized dirs. Like this (per target):

- Main dir
  - target 1 dir
     -- logs
     -- vids
     -- pics
  - target 2 dir
     -- logs
     -- vids
     -- pics

etc.

Originally posted by @YouveGotMeowxy in #25

Let's keep the conversation going in the new issue.

It's a great idea, especially since we now have multi-target monitoring. I'll give it a shot in the near future. It shouldn't be too hard.

Originally created by @misiektoja on GitHub (Jan 6, 2026). Original GitHub issue: https://github.com/misiektoja/instagram_monitor/issues/35 > Is there a way to tell the script where to save the stuff? Right now it seems to just dump everything into my User folder. I'm a bit of an organization freak and would love to be able to have it auto save to organized dirs. Like this (per target): > > ``` > - Main dir > - target 1 dir > -- logs > -- vids > -- pics > - target 2 dir > -- logs > -- vids > -- pics > ``` > etc. _Originally posted by @YouveGotMeowxy in [#25](https://github.com/misiektoja/instagram_monitor/issues/25#issuecomment-3714075640)_ Let's keep the conversation going in the new issue. It's a great idea, especially since we now have multi-target monitoring. I'll give it a shot in the near future. It shouldn't be too hard.
kerem closed this issue 2026-02-27 20:05:02 +03:00
Author
Owner

@misiektoja commented on GitHub (Jan 6, 2026):

Feature implemented and is available in the latest beta v2.1 on the dev branch: instagram_monitor.py

More info here: Output Directory

<!-- gh-comment-id:3716773322 --> @misiektoja commented on GitHub (Jan 6, 2026): Feature implemented and is available in the latest beta v2.1 on the dev branch: [instagram_monitor.py](https://raw.githubusercontent.com/misiektoja/instagram_monitor/refs/heads/dev/instagram_monitor.py) More info here: [Output Directory](https://github.com/misiektoja/instagram_monitor/tree/dev#output-directory)
Author
Owner

@YouveGotMeowxy commented on GitHub (Jan 7, 2026):

WEWT! Super fast, thank you! Can't wait to give her a shot!

<!-- gh-comment-id:3717396650 --> @YouveGotMeowxy commented on GitHub (Jan 7, 2026): WEWT! Super fast, thank you! Can't wait to give her a shot!
Author
Owner

@YouveGotMeowxy commented on GitHub (Jan 8, 2026):

Apologies, I'm not great with git. How do I get the beta? I installed normally using pip. I uninstalled what I had and then did a pip install git+https://github.com/misiektoja/instagram_monitor.git@dev to install the dev branch which shows this in the top bar

Image

but it shows this after it installs?

Successfully installed instagram_monitor-2.0.4

<!-- gh-comment-id:3724172542 --> @YouveGotMeowxy commented on GitHub (Jan 8, 2026): Apologies, I'm not great with git. How do I get the beta? I installed normally using pip. I uninstalled what I had and then did a `pip install git+https://github.com/misiektoja/instagram_monitor.git@dev` to install the dev branch which shows this in the top bar <img width="902" height="55" alt="Image" src="https://github.com/user-attachments/assets/0a7784e4-32ed-4f13-8a58-da45fc019588" /> but it shows this after it installs? `Successfully installed instagram_monitor-2.0.4`
Author
Owner

@misiektoja commented on GitHub (Jan 8, 2026):

Apologies, I'm not great with git. How do I get the beta? I installed normally using pip. I uninstalled what I had and then did a pip install git+https://github.com/misiektoja/instagram_monitor.git@dev to install the dev branch which shows this in the top bar

Ooops, I forgot to change version in pyproject.toml file. I created a new branch for you (dev-for-YouveGotMeowxy) with this change (since I'm working on huge PR rebased against dev), try this:

pip uninstall instagram-monitor -y && pip install git+https://github.com/misiektoja/instagram_monitor.git@dev-for-YouveGotMeowxy

<!-- gh-comment-id:3724565735 --> @misiektoja commented on GitHub (Jan 8, 2026): > Apologies, I'm not great with git. How do I get the beta? I installed normally using pip. I uninstalled what I had and then did a `pip install git+https://github.com/misiektoja/instagram_monitor.git@dev` to install the dev branch which shows this in the top bar > Ooops, I forgot to change version in `pyproject.toml` file. I created a new branch for you (`dev-for-YouveGotMeowxy`) with this change (since I'm working on huge PR rebased against dev), try this: `pip uninstall instagram-monitor -y && pip install git+https://github.com/misiektoja/instagram_monitor.git@dev-for-YouveGotMeowxy`
Author
Owner

@YouveGotMeowxy commented on GitHub (Jan 9, 2026):

@misiektoja thank you! I installed it and ran it for a bit and notice some things (in no particular order):

  • Even though I have my Home path nowhere in my config file at all, IM is still showing this when running:
Post video saved for REDACTED to 'instagram_REDACTED _post_20260108_183606.mp4'
Post thumbnail image saved for REDACTED to 'instagram_REDACTED _post_20260108_183606.jpeg'
'C:\Users\RE' is not recognized as an internal or external command,
operable program or batch file.

Notice the 3rd line. My home path is C:\Users\RE DACTED (with a space in it). So, it's trying to call my home path still for some reason, and also breaking due to it having a space in the name.

Part of it MAY be from this line in config:

IMGCAT_PATH = "imgcat"

I haven't looked into it, but maybe imgcat is in my home dir somewhere and since I didn't explicitly spell out the path to it and I'm letting the script find it, maybe the home folder path is being added (and also breaking due to the space in it).

BUT, even though the script IS creating all the folders properly in the output dir, it's not actually PLACING the goods into them as it is supposed to; they all stay empty. it's still dropping everything into my home folder as before.

Also, here's the info shown when it's first run; note the "Display Profile Pics" path:

* Instagram polling interval:           [ 1 hour, 15 minutes - 1 hour, 33 minutes ]
* Email notifications:                  [new posts/reels/stories/followings/bio/profile picture/visibility = False]
*                                       [followers = False] [errors = True]
* Mode of the tool:                     1 (no session login - anonymous)
* Human mode:                           False
* Profile pic changes:                  False
* Skip session login:                   True
* Skip fetching followers:              True
* Skip fetching followings:             True
* Skip stories details:                 True
* Skip posts details:                   False
* Get more posts details:               False
* Hours for fetching updates:           00:00 - 23:59
* Browser user agent:                   Mozilla/5.0 (Windows NT 10.0; Win64; x64)
* Mobile user agent:                    Instagram 254.4.7.345 (iPhone10,3; iOS 12_4; en_US; en-US; scale=2.00; 1125x2436; 414768794964915) AppleWebKit/420+
* HTTP jitter/back-off:                 False
* Liveness check:                       True (12 hours)
* CSV logging enabled:                  False
* Display profile pics:                 True (via C:\Users\RE DACTED\scoop\shims\imgcat.EXE)
* Empty profile pic template:           False
* Output logging enabled:               True (D:\REDACTED\Instagram-Monitor\REDEACTED\logs\instagram_monitor_target1_target2_target3_target4.log)
* Configuration file:                   D:\Scott\Instagram-Monitor\REDACTED\REDACTED.conf
* Dotenv file:                          None
* Output directory:                     D:\REDACTED\Instagram-Monitor\REDACTED (container for per-user subdirectories & logs)
* Local timezone:                       America/Chicago
  • Could we get individual logs per target as well, and place them into their respective /log subdir? It would be cleaner and more handy than 1 huge log for all targets, to pore through, with a real long log file name like the one shown above, which also has the potential to be a SUPER long name depending on how many more targets get added (imagine following say, 20 targets, lol). THeir respective /log dirs can contain the actual activity log for that target, plus it's .csv, and any other similar file.

  • Is there a way to not also download the Post Thumbnail Image? I just like getting any videos, and have no use in my specific case for the thumbs. Btw, my pseduo-OCD also starts going nuts seeing the extension as ".jpeg" rather than ".jpg", LOL.

  • When running it, I'm seeing this, but don't know why?

loading profile from username... JSON Query to web/search/topsearch/: 401 Unauthorized - "fail" status, message "Server Error" when accessing https://www.instagram.com/web/search/topsearch/?context=blended&query=REDACTED&include_reel=False&__a=1 [retrying; skip with ^C]
JSON Query to web/search/topsearch/: 401 Unauthorized - "fail" status, message "Server Error" when accessing https://www.instagram.com/web/search/topsearch/?context=blended&query=REDACTED&include_reel=False&__a=1 [retrying; skip with ^C]
* Error: ConnectionException: JSON Query to web/search/topsearch/: 401 Unauthorized - "fail" status, message "Server Error" when accessing https://www.instagram.com/web/search/topsearch/?context=blended&query=REDACTED&include_reel=False&__a=1

That's everything so far I think. Don't mean to overload ya, just giving some user feedback! :)

<!-- gh-comment-id:3728952942 --> @YouveGotMeowxy commented on GitHub (Jan 9, 2026): @misiektoja thank you! I installed it and ran it for a bit and notice some things (in no particular order): - Even though I have my Home path nowhere in my config file at all, IM is still showing this when running: ``` Post video saved for REDACTED to 'instagram_REDACTED _post_20260108_183606.mp4' Post thumbnail image saved for REDACTED to 'instagram_REDACTED _post_20260108_183606.jpeg' 'C:\Users\RE' is not recognized as an internal or external command, operable program or batch file. ``` Notice the 3rd line. My home path is `C:\Users\RE DACTED` (with a space in it). So, it's trying to call my home path still for some reason, and also breaking due to it having a space in the name. Part of it MAY be from this line in config: `IMGCAT_PATH = "imgcat"` I haven't looked into it, but maybe imgcat is in my home dir somewhere and since I didn't explicitly spell out the path to it and I'm letting the script find it, maybe the home folder path is being added (and also breaking due to the space in it). BUT, even though the script IS creating all the folders properly in the output dir, it's not actually PLACING the goods into them as it is supposed to; they all stay empty. it's still dropping everything into my home folder as before. Also, here's the info shown when it's first run; note the "Display Profile Pics" path: ``` * Instagram polling interval: [ 1 hour, 15 minutes - 1 hour, 33 minutes ] * Email notifications: [new posts/reels/stories/followings/bio/profile picture/visibility = False] * [followers = False] [errors = True] * Mode of the tool: 1 (no session login - anonymous) * Human mode: False * Profile pic changes: False * Skip session login: True * Skip fetching followers: True * Skip fetching followings: True * Skip stories details: True * Skip posts details: False * Get more posts details: False * Hours for fetching updates: 00:00 - 23:59 * Browser user agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) * Mobile user agent: Instagram 254.4.7.345 (iPhone10,3; iOS 12_4; en_US; en-US; scale=2.00; 1125x2436; 414768794964915) AppleWebKit/420+ * HTTP jitter/back-off: False * Liveness check: True (12 hours) * CSV logging enabled: False * Display profile pics: True (via C:\Users\RE DACTED\scoop\shims\imgcat.EXE) * Empty profile pic template: False * Output logging enabled: True (D:\REDACTED\Instagram-Monitor\REDEACTED\logs\instagram_monitor_target1_target2_target3_target4.log) * Configuration file: D:\Scott\Instagram-Monitor\REDACTED\REDACTED.conf * Dotenv file: None * Output directory: D:\REDACTED\Instagram-Monitor\REDACTED (container for per-user subdirectories & logs) * Local timezone: America/Chicago ``` - Could we get individual logs per target as well, and place them into their respective `/log` subdir? It would be cleaner and more handy than 1 huge log for all targets, to pore through, with a real long log file name like the one shown above, which also has the potential to be a SUPER long name depending on how many more targets get added (imagine following say, 20 targets, lol). THeir respective `/log` dirs can contain the actual activity log for that target, plus it's .csv, and any other similar file. - Is there a way to not also download the Post Thumbnail Image? I just like getting any videos, and have no use in my specific case for the thumbs. Btw, my pseduo-OCD also starts going nuts seeing the extension as ".jpeg" rather than ".jpg", LOL. - When running it, I'm seeing this, but don't know why? ``` loading profile from username... JSON Query to web/search/topsearch/: 401 Unauthorized - "fail" status, message "Server Error" when accessing https://www.instagram.com/web/search/topsearch/?context=blended&query=REDACTED&include_reel=False&__a=1 [retrying; skip with ^C] JSON Query to web/search/topsearch/: 401 Unauthorized - "fail" status, message "Server Error" when accessing https://www.instagram.com/web/search/topsearch/?context=blended&query=REDACTED&include_reel=False&__a=1 [retrying; skip with ^C] * Error: ConnectionException: JSON Query to web/search/topsearch/: 401 Unauthorized - "fail" status, message "Server Error" when accessing https://www.instagram.com/web/search/topsearch/?context=blended&query=REDACTED&include_reel=False&__a=1 ``` That's everything so far I think. Don't mean to overload ya, just giving some user feedback! :)
Author
Owner

@misiektoja commented on GitHub (Jan 12, 2026):

Thanks @YouveGotMeowxy, I appreciate all the remarks!

Take a look at the latest dev branch. All the issues should be sorted out now.

pip uninstall instagram-monitor -y
pip install git+https://github.com/misiektoja/instagram_monitor.git@dev

I've improved Windows compatibility, so paths with spaces should no longer cause a headache.

Loved the idea of separating logs, so it's done!

Regarding the Post Thumbnail Image not downloading, check out the new DOWNLOAD_THUMBNAILS config option.

And just to tickle your OCD, I've renamed the extension from .jpeg to .jpg. Honestly, I have no clue what I was thinking when I did it the other way ;-)

As for that 401 Unauthorized error you're running into, it's an authentication rejection from Instagram on their internal top search endpoint. This is probably due to an expired session or a required browser challenge.

To minimize seeing this error, have a look at the info I put here: How to Prevent Getting Challenged and Account Suspension

Please test the new build and let me know if you have any feedback. Thanks a bunch!

<!-- gh-comment-id:3736772043 --> @misiektoja commented on GitHub (Jan 12, 2026): Thanks @YouveGotMeowxy, I appreciate all the remarks! Take a look at the latest dev branch. All the issues should be sorted out now. `pip uninstall instagram-monitor -y` `pip install git+https://github.com/misiektoja/instagram_monitor.git@dev` I've improved Windows compatibility, so paths with spaces should no longer cause a headache. Loved the idea of separating logs, so it's done! Regarding the Post Thumbnail Image not downloading, check out the new `DOWNLOAD_THUMBNAILS` config option. And just to tickle your OCD, I've renamed the extension from .jpeg to .jpg. Honestly, I have no clue what I was thinking when I did it the other way ;-) As for that 401 Unauthorized error you're running into, it's an authentication rejection from Instagram on their internal top search endpoint. This is probably due to an expired session or a required browser challenge. To minimize seeing this error, have a look at the info I put here: [How to Prevent Getting Challenged and Account Suspension](https://github.com/misiektoja/instagram_monitor/tree/dev#how-to-prevent-getting-challenged-and-account-suspension) Please test the new build and let me know if you have any feedback. Thanks a bunch!
Author
Owner

@YouveGotMeowxy commented on GitHub (Jan 13, 2026):

first off, thank you so much for being so attentive! <3

Loved the idea of separating logs, so it's done!

Awesome! I fired it up and peeked into them; it seems like they still kinda show the info about the other targets, at least in the startup info; any way to remove all that so that the logs are just containing the info for the respective target? (Info about other targets in the log for an unrelated target is just kinda "noise"). lol

Regarding the Post Thumbnail Image not downloading, check out the new DOWNLOAD_THUMBNAILS config option.

WEWT!

And just to tickle your OCD, I've renamed the extension from .jpeg to .jpg. Honestly, I have no clue what I was thinking when I did it the other way ;-)

HAHAHA! THANK YOU! it's ok, I know that's one of those weird extensions that can be used multiple ways. I'm just so used to 3 letter extensions, and for some reason a bit of a minimalist, so unnecessary length, even 1 letter, triggers my undiagnosed OCD. :P I always have to go through each one and delete the extra letter, hjahah.

  • One other OCD thing, instead of creating the subdirs no matter what, how bout only creating them as needed? i.e. if user config is set to not fetch images, no need to create the images dir; just when fetching any image that would be normally stored do a dir_exists check first, and only create if it doesn't already exist. :)

Oooh, also just a tip (OCD again! lololol):

Image

See all those red arrows? (tabs), when using tabs instead of spaces the alignment of the "column" on the right gets knocked out of line. It looks like you wanted to keep them nicely lined up, but the tabs are screwing them up. I used to use tabs instead too but this always ended up driving me crazy, so I always change my IDE settings now to replace tabs with spaces when I hit the tab key. That way I still get the convenience of just tapping the tab key, but the predictability of spaces. :)

In my code I usually whip up a function to pass strings through that pads the right with spaces (or left, depending on where ya want the string) until the total string is X length. I use the total length of the longest string from the "left column" as the max length. This usually makes it super easy to line text up so it's easy on and pretty for the eyes. :D

Example:

def pad_string(s: str, side: str, length: int) -> str:
    if side not in ("left", "right"):
        raise ValueError("side must be 'left' or 'right'")

    if len(s) >= length:
        return s

    padding = length - len(s)

    if side == "left":
        return " " * padding + s
    else:
        return s + " " * padding
pad_string("hello", "right", 10)
# 'hello     '

pad_string("hello", "left", 10)
# '     hello'
<!-- gh-comment-id:3741377892 --> @YouveGotMeowxy commented on GitHub (Jan 13, 2026): first off, thank you so much for being so attentive! <3 > Loved the idea of separating logs, so it's done! Awesome! I fired it up and peeked into them; it seems like they still kinda show the info about the other targets, at least in the startup info; any way to remove all that so that the logs are _just_ containing the info for the respective target? (Info about other targets in the log for an unrelated target is just kinda "noise"). lol > Regarding the Post Thumbnail Image not downloading, check out the new `DOWNLOAD_THUMBNAILS` config option. WEWT! > And just to tickle your OCD, I've renamed the extension from .jpeg to .jpg. Honestly, I have no clue what I was thinking when I did it the other way ;-) HAHAHA! THANK YOU! it's ok, I know that's one of those weird extensions that can be used multiple ways. I'm just so used to 3 letter extensions, and for some reason a bit of a minimalist, so unnecessary length, even 1 letter, triggers my undiagnosed OCD. :P I always have to go through each one and delete the extra letter, hjahah. - One other OCD thing, instead of creating the subdirs no matter what, how bout only creating them as needed? i.e. if user config is set to not fetch images, no need to create the images dir; just when fetching any image that would be normally stored do a dir_exists check first, and only create if it doesn't already exist. :) Oooh, also just a tip (OCD again! lololol): <img width="1312" height="742" alt="Image" src="https://github.com/user-attachments/assets/b2d9d8f5-8ca1-4aca-b943-5c6bf4fe80e4" /> See all those red arrows? (tabs), when using tabs instead of spaces the alignment of the "column" on the right gets knocked out of line. It looks like you wanted to keep them nicely lined up, but the tabs are screwing them up. I used to use tabs instead too but this always ended up driving me crazy, so I always change my IDE settings now to replace tabs with spaces when I hit the tab key. That way I still get the convenience of just tapping the tab key, but the predictability of spaces. :) In my code I usually whip up a function to pass strings through that pads the right with spaces (or left, depending on where ya want the string) until the total string is X length. I use the total length of the longest string from the "left column" as the max length. This usually makes it super easy to line text up so it's easy on and pretty for the eyes. :D Example: ``` def pad_string(s: str, side: str, length: int) -> str: if side not in ("left", "right"): raise ValueError("side must be 'left' or 'right'") if len(s) >= length: return s padding = length - len(s) if side == "left": return " " * padding + s else: return s + " " * padding ``` ``` pad_string("hello", "right", 10) # 'hello ' pad_string("hello", "left", 10) # ' hello' ```
Author
Owner

@misiektoja commented on GitHub (Jan 16, 2026):

first off, thank you so much for being so attentive! <3

Thanks! I appreciate you taking the time to say that! 🤩

any way to remove all that so that the logs are just containing the info for the respective target? (Info about other targets in the log for an unrelated target is just kinda "noise"). lol

I checked the code and every log should contain user-specific information. The only exceptions are the beginning summary screen and the initial polling times for all users. I didn't want to create another file just for that as those things are somewhat common for all users.

WEWT!

🤣

One other OCD thing, instead of creating the subdirs no matter what, how bout only creating them as needed? i.e. if user config is set to not fetch images, no need to create the images dir ...

You won this OCD round as well😄 I like it and implemented as suggested (05c2bdb) ! Now the code does the on-demand/lazy directory creation to prevent filesystem clutter. Let me know if I missed sth.

Oooh, also just a tip (OCD again! lololol): See all those red arrows? (tabs), when using tabs instead of spaces the alignment of the "column" on the right gets knocked out of line.
...

Thanks! Honestly, it was driving me crazy too that the log files weren't aligned. I initially thought it was just my text editor playing tricks on me, but turns out it was messing with everyone. Good news, though, I took a closer look and found a simple fix. I just rewrote the tabs to spaces on the fly in our Logger implementation (759448a). Crisis averted, I hope ? ;-)

All the changes are all set and loaded into the dev branch. Let me know if you have any feedback!

BTW, which terminal are you using on Windows to get imgcat working?

<!-- gh-comment-id:3761251312 --> @misiektoja commented on GitHub (Jan 16, 2026): > first off, thank you so much for being so attentive! <3 > Thanks! I appreciate you taking the time to say that! 🤩 > any way to remove all that so that the logs are _just_ containing the info for the respective target? (Info about other targets in the log for an unrelated target is just kinda "noise"). lol > I checked the code and every log should contain user-specific information. The only exceptions are the beginning summary screen and the initial polling times for all users. I didn't want to create another file just for that as those things are somewhat common for all users. > WEWT! > 🤣 > One other OCD thing, instead of creating the subdirs no matter what, how bout only creating them as needed? i.e. if user config is set to not fetch images, no need to create the images dir ... > You won this OCD round as well😄 I like it and implemented as suggested (05c2bdb) ! Now the code does the on-demand/lazy directory creation to prevent filesystem clutter. Let me know if I missed sth. > Oooh, also just a tip (OCD again! lololol): See all those red arrows? (tabs), when using tabs instead of spaces the alignment of the "column" on the right gets knocked out of line. > ... > Thanks! Honestly, it was driving me crazy too that the log files weren't aligned. I initially thought it was just my text editor playing tricks on me, but turns out it was messing with everyone. Good news, though, I took a closer look and found a simple fix. I just rewrote the tabs to spaces on the fly in our Logger implementation (759448a). Crisis averted, I hope ? ;-) All the changes are all set and loaded into the dev branch. Let me know if you have any feedback! BTW, which terminal are you using on Windows to get imgcat working?
Author
Owner

@YouveGotMeowxy commented on GitHub (Jan 16, 2026):

All the changes are all set and loaded into the dev branch. Let me know if you have any feedback!

Awesome! I just installed and will test the changes! :D

Just asking, did you intend to keep these changes in the same version number? It says it uninstalled v2.1, and then installed v2.1 later. Just wanna make sure I got all the changes, lol.

Image

BTW, which terminal are you using on Windows to get imgcat working?

In Windows I use "Windows Terminal" which really just is a tabbed interface for the regular windows command-line, but I also use it for WSL stuff as well.

For imgcat I ran the install command-lines it's GH repo said to use (scoop):

scoop bucket add scoop-imgcat https://github.com/danielgatis/scoop-imgcat.git
scoop install scoop-imgcat/imgcat

Then I can also just use UniGetUI to keep it updated.

<!-- gh-comment-id:3762244654 --> @YouveGotMeowxy commented on GitHub (Jan 16, 2026): > All the changes are all set and loaded into the dev branch. Let me know if you have any feedback! Awesome! I just installed and will test the changes! :D Just asking, did you intend to keep these changes in the same version number? It says it uninstalled v2.1, and then installed v2.1 later. Just wanna make sure I got all the changes, lol. <img width="1364" height="775" alt="Image" src="https://github.com/user-attachments/assets/ba5ec08f-113f-4e0d-b3bd-4b2d436598f0" /> > BTW, which terminal are you using on Windows to get imgcat working? In Windows I use "[Windows Terminal](https://github.com/microsoft/terminal)" which really just is a tabbed interface for the regular windows command-line, but I also use it for WSL stuff as well. For imgcat I ran the install command-lines it's GH repo said to use (scoop): ``` scoop bucket add scoop-imgcat https://github.com/danielgatis/scoop-imgcat.git scoop install scoop-imgcat/imgcat ``` Then I can also just use [UniGetUI](https://github.com/marticliment/UniGetUI) to keep it updated.
Author
Owner

@misiektoja commented on GitHub (Jan 17, 2026):

Just asking, did you intend to keep these changes in the same version number? It says it uninstalled v2.1, and then installed v2.1 later. Just wanna make sure I got all the changes, lol.

Yes, that is correct. I am still working on the dev branch on some features before release, but so far everything has landed in beta v2.1, so what you see is expected.

For imgcat I ran the install command-lines it's GH repo said to use (scoop):

scoop bucket add scoop-imgcat https://github.com/danielgatis/scoop-imgcat.git
scoop install scoop-imgcat/imgcat

But does imgcat actually display images in the terminal for you? When I use this Go version you mentioned (installed via scoop) on different terminals (I've tried Windows Terminal including Preview, Git Bash and WezTerm), I always get the following output when displaying the image:

imgcat.exe .\instagram_misiektoja_profile_pic.jpg

2026/01/17 14:40:59 failed to get the terminal size: unsupported
panic: failed to get the terminal size: unsupported

goroutine 1 [running]:
log.Panicf({0x973522?, 0xc000152720?}, {0xc00015ded0?, 0x51ff?, 0xc000150100?})
        /opt/hostedtoolcache/go/1.24.1/x64/src/log/log.go:439 +0x65
main.scale({0xc000022480, 0x1, 0x51ff?})
        /home/runner/work/imgcat/imgcat/main.go:155 +0xd4
main.main()
        /home/runner/work/imgcat/imgcat/main.go:307 +0x29d

The same if I have imgcat enabled in instagram_monitor.

<!-- gh-comment-id:3763774826 --> @misiektoja commented on GitHub (Jan 17, 2026): > Just asking, did you intend to keep these changes in the same version number? It says it uninstalled v2.1, and then installed v2.1 later. Just wanna make sure I got all the changes, lol. > Yes, that is correct. I am still working on the dev branch on some features before release, but so far everything has landed in beta v2.1, so what you see is expected. > For imgcat I ran the install command-lines it's GH repo said to use (scoop): > > ``` > scoop bucket add scoop-imgcat https://github.com/danielgatis/scoop-imgcat.git > scoop install scoop-imgcat/imgcat > ``` > But does `imgcat` actually display images in the terminal for you? When I use this Go version you mentioned (installed via scoop) on different terminals (I've tried Windows Terminal including Preview, Git Bash and WezTerm), I always get the following output when displaying the image: ``` imgcat.exe .\instagram_misiektoja_profile_pic.jpg 2026/01/17 14:40:59 failed to get the terminal size: unsupported panic: failed to get the terminal size: unsupported goroutine 1 [running]: log.Panicf({0x973522?, 0xc000152720?}, {0xc00015ded0?, 0x51ff?, 0xc000150100?}) /opt/hostedtoolcache/go/1.24.1/x64/src/log/log.go:439 +0x65 main.scale({0xc000022480, 0x1, 0x51ff?}) /home/runner/work/imgcat/imgcat/main.go:155 +0xd4 main.main() /home/runner/work/imgcat/imgcat/main.go:307 +0x29d ``` The same if I have imgcat enabled in instagram_monitor.
Author
Owner

@tomballgithub commented on GitHub (Jan 17, 2026):

I am seeing the same error with imgcat after downloading and manually running the latest Windows binary.

It's occurring in Terminal 1.22 and Terminal Preview 1.24. Looks like 'sixel' support was added in 1.22 which is needed for Imgcat.

<!-- gh-comment-id:3764343710 --> @tomballgithub commented on GitHub (Jan 17, 2026): I am seeing the same error with imgcat after downloading and manually running the latest Windows binary. It's occurring in Terminal 1.22 and Terminal Preview 1.24. Looks like 'sixel' support was added in 1.22 which is needed for Imgcat.
Author
Owner

@YouveGotMeowxy commented on GitHub (Jan 17, 2026):

Yes, that is correct. I am still working on the dev branch on some features before release, but so far everything has landed in beta v2.1, so what you see is expected.

okies. Just didn't know if you versioned revisions as well (like 2.1.1 or something).

But does imgcat actually display images in the terminal for you?

Now that you bring it up, I do get the same error showing in regular Windows command-line (via Windows Terminal):

2026/01/17 17:36:27 failed to get the terminal size: unsupported
panic: failed to get the terminal size: unsupported

goroutine 1 [running]:
log.Panicf({0xa53522?, 0xc00019c720?}, {0xc00002bed0?, 0x74c4?, 0xc00019a100?})
        /opt/hostedtoolcache/go/1.24.1/x64/src/log/log.go:439 +0x65
main.scale({0xc0000260d0, 0x1, 0x74c4?})
        /home/runner/work/imgcat/imgcat/main.go:155 +0xd4
main.main()
        /home/runner/work/imgcat/imgcat/main.go:307 +0x29d

I hadn't ever even tested it, I just installed as it instructed on it's repo and then was waiting to see what it would show while IM was running.

<!-- gh-comment-id:3764485901 --> @YouveGotMeowxy commented on GitHub (Jan 17, 2026): > Yes, that is correct. I am still working on the dev branch on some features before release, but so far everything has landed in beta v2.1, so what you see is expected. okies. Just didn't know if you versioned revisions as well (like 2.1.1 or something). > But does `imgcat` actually display images in the terminal for you? Now that you bring it up, I do get the same error showing in regular Windows command-line (via Windows Terminal): ``` 2026/01/17 17:36:27 failed to get the terminal size: unsupported panic: failed to get the terminal size: unsupported goroutine 1 [running]: log.Panicf({0xa53522?, 0xc00019c720?}, {0xc00002bed0?, 0x74c4?, 0xc00019a100?}) /opt/hostedtoolcache/go/1.24.1/x64/src/log/log.go:439 +0x65 main.scale({0xc0000260d0, 0x1, 0x74c4?}) /home/runner/work/imgcat/imgcat/main.go:155 +0xd4 main.main() /home/runner/work/imgcat/imgcat/main.go:307 +0x29d ``` I hadn't ever even tested it, I just installed as it instructed on it's repo and then was waiting to see what it would show while IM was running.
Author
Owner

@misiektoja commented on GitHub (Jan 18, 2026):

Ok, thanks for the feedback. So, it means I'm not the only one with those issues. The only way I got it working under Windows was by using the WezTerm terminal and pip's imgcat (pip install imgcat pillow).

<!-- gh-comment-id:3764561177 --> @misiektoja commented on GitHub (Jan 18, 2026): Ok, thanks for the feedback. So, it means I'm not the only one with those issues. The only way I got it working under Windows was by using the [WezTerm](https://wezterm.org) terminal and pip's imgcat (`pip install imgcat pillow`).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/instagram_monitor#24
No description provided.