Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ __pycache__/

# Research Reports (DO NOT UPLOAD)
reports/

# macOS Finder metadata
.DS_Store
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,31 @@
- 📂 **Batch Processing:** Scan lists of targets via TXT file.
- 💡 **Automatic API Setup:** Interactive onboarding on the first run.

---

## 🆓 Account creation date, no API key needed

Want to know when a TikTok account was created without setting up an API key? `tiktok_created.py` reads the `createTime` that TikTok embeds in the public profile page, so a username is all you need.

```bash
python3 tiktok_created.py charlidamelio
python3 tiktok_created.py @nasa https://www.tiktok.com/@zachking
```

You get the account creation date plus the basics (followers, likes, bio, verified, private). It also decodes a video URL or ID to its upload time, using the snowflake timestamp inside the id (`id >> 32`). Reports save to `reports/` as JSON and TXT, the same as the main tool.

### Start the app (interactive UI)

The UI shows a TikTok style banner and a prompt where you type usernames one after another.

- **macOS:** double click `TokIntel.app` (or `TokIntel.command`)
- **Windows:** double click `start.bat`
- **Any terminal (macOS or Linux):** run `./start.sh`

The launcher creates its own virtual environment and installs `requests`, `colorama`, and `rich` on first run, so there is nothing to set up by hand.

_This no-key lookup mode is an addition to TokIntel by Victor Bancayan (Hack Underway), contributed by [@Thyfwx](https://github.com/Thyfwx)._

## 📌 Prerequisites

- Python 3.8+
Expand Down
22 changes: 22 additions & 0 deletions TokIntel.app/Contents/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>TokIntel</string>
<key>CFBundleDisplayName</key>
<string>TokIntel</string>
<key>CFBundleIdentifier</key>
<string>com.tokintel.launcher</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleExecutable</key>
<string>TokIntel</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>LSMinimumSystemVersion</key>
<string>10.13</string>
</dict>
</plist>
8 changes: 8 additions & 0 deletions TokIntel.app/Contents/MacOS/TokIntel
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh
# Double-clicking TokIntel.app runs this. It finds the repo (the app bundle
# lives at <repo>/TokIntel.app/Contents/MacOS/TokIntel) and opens start.sh in
# Terminal, which launches the UI. App bundles always launch, never open in an
# editor, so this is the reliable double-click path on macOS.
HERE="$(cd "$(dirname "$0")" && pwd)"
REPO="$(cd "$HERE/../../.." && pwd)"
open -a Terminal "$REPO/start.sh"
5 changes: 5 additions & 0 deletions TokIntel.command
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
# Double-click this file in Finder (macOS) to launch TokIntel in Terminal.
# It just hands off to start.sh next to it.
DIR="$(cd "$(dirname "$0")" && pwd)"
exec "$DIR/start.sh"
14 changes: 14 additions & 0 deletions start.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
@echo off
REM Windows double-click launcher for TokIntel.
REM Sets up its own virtual environment and dependencies on first run.
cd /d "%~dp0"

if not exist "venv\Scripts\python.exe" (
echo First run - setting up a local Python environment...
python -m venv venv
)

venv\Scripts\python.exe -c "import importlib.util as u,sys;sys.exit(0 if all(u.find_spec(m) for m in ('requests','colorama','rich')) else 1)" 2>nul || venv\Scripts\python.exe -m pip install -q requests colorama rich

venv\Scripts\python.exe tiktok_ui.py %*
pause
24 changes: 24 additions & 0 deletions start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh
# TokIntel — TikTok account-creation lookup UI.
# ./start.sh run from a terminal
# TokIntel.command double-click in Finder (macOS)
# Self-locating (works wherever the repo lives) and self-healing (sets up its
# own venv + dependencies on first run).

DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$DIR" || exit 1
PY="$DIR/venv/bin/python"

if [ ! -x "$PY" ]; then
echo "First run — setting up a local Python environment…"
python3 -m venv "$DIR/venv" || { echo "python3 is required."; exit 1; }
PY="$DIR/venv/bin/python"
fi

# Install dependencies only if any are missing.
"$PY" - <<'CHECK' 2>/dev/null || "$PY" -m pip install -q requests colorama rich
import importlib.util as u, sys
sys.exit(0 if all(u.find_spec(m) for m in ("requests", "colorama", "rich")) else 1)
CHECK

exec "$PY" "$DIR/tiktok_ui.py" "$@"
Loading