DEV Community

Hapoy Gety
Hapoy Gety

Posted on

What I Learned Debugging Osintgram on a Linux VM with HikerAPI

What I Learned Debugging Osintgram on a Linux VM with HikerAPI

I recently spent some time experimenting with Osintgram inside a Linux virtual machine and connecting it to HikerAPI.

What started as a straightforward installation turned into a useful debugging exercise. Instead of focusing only on getting commands to run, I wanted to understand what was happening between Osintgram, Python, and the external API.

The environment

The project was running inside a Freestyle Linux VM that I accessed from my Android device.

This gave me a more traditional Linux environment while still allowing me to manage everything from Termux.

My basic workflow looked like this:

Android

Termux

Freestyle VM

Linux environment

Osintgram

HikerAPI

The important part was that each layer could potentially introduce its own problem.

First mistake: assuming installation means everything is ready

One thing I quickly learned is that successfully installing a Python package doesn't mean the application is ready to use it.

I checked the installed HikerAPI package with:

python3 -m pip show hikerapi

I was running version "1.7.1".

I also inspected the Python client rather than assuming its interface from documentation or examples.

For example, I checked the available constructor and method signatures:

import inspect
from hikerapi import Client

print(inspect.signature(Client))
print(inspect.signature(Client.user_by_id_v2))

This helped me understand what the installed version actually exposed.

Looking at Osintgram itself

The next step was to stop treating Osintgram as a black box.

I looked through the project's files to see where the HikerAPI integration was being handled.

This was particularly useful because it showed me that debugging the project wasn't simply a matter of installing "hikerapi" and hoping the application would automatically use it correctly.

The application's own configuration and API wrapper mattered too.

Testing the credentials

I then focused on the API credentials.

Instead of immediately blaming Python or the VM, I tested whether the configured HikerAPI token was actually being loaded.

A small check showed that the token was present:

print("Token loaded:", bool(t))
print("Length:", len(t) if t else 0)

The token was being detected and had a length of 32 characters.

That eliminated one possible source of the problem.

The error that changed the investigation

When I ran Osintgram against a username, I eventually reached HikerAPI, but the response indicated that the account needed to be topped up.

That was a useful turning point.

It meant I no longer needed to spend all my time changing the Python environment just because the application wasn't producing the result I expected.

The API was responding with an account-related restriction.

In debugging terms, that is very different from a missing package, a syntax error, or a completely invalid configuration.

Why the VM was still useful

Moving the project into a VM wasn't a magic solution, but it gave me a cleaner Linux environment for experimenting.

I could inspect files, install Python packages, check versions, run scripts, and reproduce errors without depending entirely on the Android userspace.

The VM also made it easier to keep the project environment separate from the rest of my phone.

My debugging checklist

After going through the process, this is the sequence I would use for a similar Python/API project:

  1. Confirm Python is working
  2. Check the installed package version
  3. Inspect the application's integration code
  4. Confirm the credential is being loaded
  5. Test the API independently
  6. Run the application
  7. Read the exact error
  8. Fix the layer that is actually failing

The most important part is step seven.

An error message often contains more information than it appears to at first glance.

What I would do differently next time

If I repeated the setup, I would verify each layer earlier instead of changing several components at once.

For example, I would first establish that Python works, then verify the HikerAPI package, then confirm the credential is loaded, and only after that test Osintgram.

That makes it much easier to identify the exact point where something stops working.

Conclusion

This experiment didn't end with every Osintgram feature fully operational.

Instead, it gave me something almost as useful: a clearer understanding of the system I was troubleshooting.

I learned that:

  • A VM doesn't automatically solve API problems.
  • An installed Python package isn't proof that the application is configured correctly.
  • Checking the actual installed library version matters.
  • Credentials should be tested independently.
  • Error messages can reveal which layer is failing.
  • API account restrictions are different from local installation problems.

For me, the most valuable part wasn't simply running another command. It was learning how to break a complicated setup into smaller pieces and test each piece independently.

Top comments (1)

Collapse
 
hapoy_gety_354fc2a8166bb3 profile image
Hapoy Gety

What I Learned Debugging Osintgram on a Linux VM with HikerAPI