cactool
An easy way to collaboratively code social media posts for manual content and discourse analysis
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.2%) to scientific vocabulary
Keywords
Repository
An easy way to collaboratively code social media posts for manual content and discourse analysis
Basic Info
- Host: GitHub
- Owner: cactool
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://cactool.github.io
- Size: 9.53 MB
Statistics
- Stars: 20
- Watchers: 2
- Forks: 2
- Open Issues: 26
- Releases: 6
Topics
Metadata Files
README.md
Cactool
Introduction
Cactool (or Content Analysis Coding Tool) is a platform which allows researchers to collaboratively code pre-existing social media datasets in their native format for manual content and discourse analysis.
Using Cactool is easy, after the initial installation, you can create users, import your data, set your coding variables, and get started! This allows coders, especially those working in groups, to analyse social media data quicker, more accessibly, and more accurately by viewing posts in context.
Features
- No more coding via spreadsheets: Coding via your browser (tested working on Chrome, Firefox, Edge, & Safari) with posts visible as they would be on the social media platform. This allows your coders to evaluate social media content in their native format.
- Simple Import and Export: Take your pre-existing social media URLs from software such as 4Cat, NodeXL, or API Scrapers such as Tweepy and import them as a CSV list. When done, you can export your data via CSV to whatever analysis software you desire (Such as SPSS/Excel).
- Importing of image/text data: Have data from secondary source with no URLs? No Problem.
- Manage Multiple Datasets: Want to split your project by source/themes? You can manage multiple concurrent datasets at the same time.
- Built for collaboration: Cactool comes pre-packaged with user management; codes attributed are attributed to each coder for coder reliability calculation (such as ReCal). Multiple people can be coding at the same time without sharing documents. No need to worry about version control or splitting up data.
- Code on the Go: Cactool is mobile friendly and can be accessed remotely (we recommend using a VPN to connect, see our tutorial for why). This provides researchers interested in social media content and spaciality new avenues of research.
Platform Compatability
Cactool works for across multiple-social media platforms. The following data types are currently supported: - Twitter - YouTube - TikTok - Instagram - Mastodon (via OEmbed) - Image Data (Photos/screenshots) - Text Strings - & Some* compatibility with other OEmbed platforms
Documentation
Easy to follow installation instructions and user guides can be found the Cactool website
Installation and usage
You can install Cactool on your local machine or on a server through Docker or directly using PIP (package manager). Running Cactool through a server is useful if you want to have multiple coders, or want to code through your mobile while situated away from your main computer.
Cactool also has some custom build configurations
Docker
1. Install Docker Desktop, and start it.
Note that on Windows, you may need to ensure that WSL (Windows Subsystem for Linux) integration is enabled in Docker. You can find this in the Docker setting in Settings -> Resources-> WSL Integration -> Enable integration with required distros.
2. Clone the repository
bash
git clone https://github.com/cactool/cactool
3. Enter the cactool directory
cd cactool
4. Run docker-compose
Make sure the Docker daemon is running then run
bash
docker-compose up -d
An instance should be accessible on port 80
Directly (with Pip)
1. Install Cactool
bash
pip install cactool
2. Start the website
bash
cactool
The server will be running on port 80 and configuration files can be found in the generated docker-config folder.
Custom Builds
There are some additional configuration settings available. For example those aimed at low-memory machines (such as installing Cactool on a Raspberry Pi), or server users with a public facing instance (such as custom ports, limiting file size uploads, and limiting user-signups. Please read the documents for more.
Credits
The project’s Principle Investigator is Dr Liam McLoughlin, Lecturer in Media & Communication at the University of Liverpool, and development was undertaken by Sam Ezeh
Cactus image created by catalyststuff on Freepik
Funding
Cactool Development was funded by the University of Liverpool’s Research Development and Initiative Fund (RDIF).

Citations
Bibtex
bibtex
@software{McLoughlin_Ezeh_2022,
title = {{Cactool: An easy way to collaboratively code social media posts for manual content and discourse analysis (BETA)}},
author = {McLoughlin, Liam and Ezeh, Sam},
year = {2022},
doi = {10.5281/zenodo.6070206},
url = {https://github.com/cactool/cactool},
license = {MIT}
}
APA
McLoughlin, L., & Ezeh, S. (2022). Cactool: An easy way to collaboratively code social media posts for manual content and discourse analysis (BETA). [Computer software]. URL:https://github.com/cactool/cactool
Images



Outputs
If you've used or cited Cactool in your research, please let us know and we will highlight your paper below. It also helps us understand who and how it's being used! - The development of Cactool has also resulted in features being added to Python 3.11. "bpo-14265: Adds fully qualified test name to unittest output (GH-32138)"
Owner
- Name: Cactool: Content Analysis Coder Tool
- Login: cactool
- Kind: organization
- Repositories: 2
- Profile: https://github.com/cactool
Citation (CITATION.cff)
cff-version: 1.2.0
title: Cactool
message: 'If you use this software, please cite it as below.'
type: software
authors:
- given-names: Liam
family-names: McLoughlin
email: liam.mcloughlin@Liverpool.ac.uk
- given-names: Sam
family-names: Ezeh
email: sam.z.ezeh@gmail.com
orcid: 'https://orcid.org/0000-0003-1218-6116'
identifiers:
- type: url
value: 'https://github.com/cactool/cactool'
description: Gihub Repository
repository-code: 'https://github.com/cactool/cactool'
url: 'https://cactool.github.io'
abstract: >-
An easy way to collaboratively code social media
posts for manual content and discourse analysis
keywords:
- software
- discourse analysis
license: MIT
GitHub Events
Total
- Watch event: 2
Last Year
- Watch event: 2
Packages
- Total packages: 1
-
Total downloads:
- pypi 43 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 12
- Total maintainers: 1
pypi.org: cactool
An easy way to collaboratively code social media posts for manual content and discourse analysis
- Homepage: https://cactool.github.io
- Documentation: https://cactool.readthedocs.io/
- License: MIT License
-
Latest release: 0.6.2
published over 2 years ago
Rankings
Maintainers (1)
Dependencies
- Flask *
- Flask-Migrate *
- Flask_Login *
- Flask_SQLAlchemy *
- Werkzeug *
- appdirs *
- cryptography *
- passlib *
- requests *
- waitress *
- actions/checkout v2 composite
- github/codeql-action/analyze v1 composite
- github/codeql-action/autobuild v1 composite
- github/codeql-action/init v1 composite
- python 3.10-bullseye build
