{"id":24275697,"url":"https://github.com/silasberger/taketok","last_synced_at":"2026-04-16T21:01:12.300Z","repository":{"id":157550893,"uuid":"633530512","full_name":"SilasBerger/taketok","owner":"SilasBerger","description":"A TikTok content distillery.","archived":false,"fork":false,"pushed_at":"2023-07-12T05:52:05.000Z","size":520,"stargazers_count":1,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-03-05T09:27:32.125Z","etag":null,"topics":["content-analysis","information","information-analysis","information-retrieval","social-media","summarization","summary","tiktok"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SilasBerger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-27T17:47:49.000Z","updated_at":"2023-07-18T09:26:57.000Z","dependencies_parsed_at":"2025-01-15T22:07:10.468Z","dependency_job_id":null,"html_url":"https://github.com/SilasBerger/taketok","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SilasBerger/taketok","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilasBerger%2Ftaketok","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilasBerger%2Ftaketok/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilasBerger%2Ftaketok/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilasBerger%2Ftaketok/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SilasBerger","download_url":"https://codeload.github.com/SilasBerger/taketok/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SilasBerger%2Ftaketok/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31904067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["content-analysis","information","information-analysis","information-retrieval","social-media","summarization","summary","tiktok"],"created_at":"2025-01-15T21:43:54.866Z","updated_at":"2026-04-16T21:01:12.246Z","avatar_url":"https://github.com/SilasBerger.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TakeTok\nA TikTok content distillery.\n\n## A quick word...\nThis project is under heavy construction 🚧. While the ultimate goal is of course to provide a simple, polished\nout-of-the-box user experience for everyone, we are very much not there yet. Therefore, this setup guide and usage\ninstructions are solely targeted towards developers and other tech-savvy power users for now. It will get better ;)\n\n## Setup\n**Note:** Whenever we mention the _taketok home_ or `~/taketok` directory, we refer to a directory called `taketok`,\nlocated at the root of the user home, i.e. `~/taketok` (UNIX-like) or `%USERHOME%/taketok` (Windows). You will have to\ncreate  this directory yourself, as part of the setup process.\n\n### Install the prerequisites\n* **Python 3.10** - e.g. `brew install python@3.10` (macOS)\n* **ffmpeg** - `brew install ffmpeg` (MacOS) | `choco install ffmpeg` (Win) | `sudo apt install ffmpeg` (Debian)\n* **Rust** - `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`\n\n### Set up the Python environment (and some other useful stuff...)\nSimply run `./setup.sh`\n\n### Step 3: Create the configuration file\nConfiguration files tell `taketok` where to put and find stuff, and what to do. You can have multiple configuration\nfiles for different use cases. All configuration files are located in `~/taketok/config`. The default configuration\nfile is `~/taketok/config/default.config.json`.\n\nCreate the default config file `~/taketok/config/default.config.json` as follows, for now:\n```json\n{\n  \"whisperModel\": \"small\"\n}\n```\n\n**Here's what these fields mean:**\n* `whisperModel`: The whisper transcription model to be used (`tiny` | `base` | `small` | `medium` | `large`)\n\n## Usage Instructions\n_For all command line instructions in this section, make sure to have the virtualenv activated, which was previously\ncreated for you by the `setup.sh` script (e.g. `source ./venv/bin/activate` for UNIX-like systems)._\n\n### Importing source links\nThe starting point for the process of importing and transcribing videos is a list of source URLs - think of it as a\ndownload queue. Until there is a full graphical UI, the easiest way to import source URLs is as follows:\n\nCreate a file `\u003ctaketok_home\u003e/source-links.\u003cconfig-name\u003e.txt`, to which you can add any links to be imported into the\ndatabase, one link per line. Then, run the following command:\n\n`python insert_source_links_from_file.py \u003cconfig-name\u003e`\n\nfrom the `dev` directory, to go through this file and insert all links not yet present in the database corresponding to\nthe specified config. If no `\u003cconfig-name\u003e` is given, this will default to the `default` configuration as usual.\n\n### Starting the API backend\nThe Python REST API backend is where all the core logic resides, when it comes to interacting with TikTok or\ntranscribing videos. This is also what will ultimately be left of the Python code, once the rest is migrated to\nTauri / Rust.\n\nTo launch the API backend, run the following command from the `src_python` directory:\n\n`python -m flask --app taketok_api run`\n\n### Launching the UI and importing videos\n* ✅ You have completed the setup instructions, including creating the config file?\n* ✅ You have imported some source links for your config of choice (e.g. `default`)?\n* ✅ The REST API backend is running?\n\nGreat, you can now start importing videos!\n\nTo launch the UI, either use the `tauri dev` IntelliJ run config (or `tauri dev + reset` if you also want to reset\nthe database) or run `npm run tauri dev` from the command line.\n\n### Some considerations\nCurrently, a lot of things are subject to change. So here are a few things to keep in mind:\n* You may need to create file structure yourself, especially the DB file `taketok/data/default.sqlite`\n* The mechanism for importing source links is subject to change and may break soon\n* In `main.rs`, you can choose to either use the mock core API client or the real client. The mock client requires\n  some external files that aren't currently checked in.\n\n## Dev notes (this probably isn't particularly relevant to you...)\n* pip setup instructions for whisper didn't work, pip install command had to be `pip install git+https://github.com/openai/whisper.git`\n* whisper didn't run on the latest Python version (3.11), had to use 3.10 (latest stable)\n* had to create a fork of TikTokApi (git+https://github.com/SilasBerger/TikTok-Api@41b507d9e04326dd20d86ae6c050ed54af4feef3)\n  because there was an issue with the asyncio event loop, once I started using Flask","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilasberger%2Ftaketok","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilasberger%2Ftaketok","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilasberger%2Ftaketok/lists"}