/socialmediascheduler

Automates daily posts to Instagram, twitter (X), facebook, tiktok, youtube (WIP)

Primary LanguagePython

Social Media Scheduler

The Social Media Scheduler is an application that allows users to schedule and manage their social media posts across various platforms. It integrates with the following APIs:

  • Meta/Facebook API
  • YouTube API
  • TikTok API
  • Instagram API
  • Twitter API

Diagram

Diagram

Features

  • Schedule posts: Users can schedule posts to be published on their social media accounts at a specific date and time.
  • Platform integration: The application seamlessly integrates with Meta/Facebook, YouTube, TikTok, Instagram, and Twitter APIs to fetch user data and publish posts.
  • Database backend: The application uses SQLite as the database backend to store user information, scheduled posts, and API credentials securely.

Installation

  1. Clone the repository:

    git clone https://github.com/Masterjx9/socialmediascheduler.git
  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Setup Ngrok (WIP):

    • Ngrok is used for instagram API as it requires a public URL to be set up. This repo comes with ngrok for windows, mac, and linux.
    • For now we recommend getting a free API key from ngrok and setting it up manually. Hopefully we will have a better solution in the future.
    • You can get a free API key from here - https://dashboard.ngrok.com/signup
    • Then go to the ngrok folder and run the following command to set up ngrok:
      .\ngrok config add-authtoken <YOUR_AUTH>
      or
      ngrok config add-authtoken <YOUR_AUTH>
  4. Set up API credentials:

  5. Configure the application:

    • Create a .env file in the root directory of the project.

    • Add the following environment variables to the .env file:

      • Or use the sample.env to get started
      CONFIG_PATH = config.yaml
      
  6. Run the management application:

  • From python:

    python manage.py
  • From the executable:

    • First create the executable using the following command:
      # Create the executable
      pyinstaller --noconfirm --onedir --windowed --icon "logo.ico" --paths "/gui"
      
      # Copy .env file
      cp .env output/manage/.env
      
      # Copy config.yaml file
      cp config.yaml output/manage/config.yaml
      
      # Copy default_database.sqlite3 file
      cp default_database.sqlite3 output/manage/default_database.sqlite3
    • Then run the executable from the output folder

Usage

  1. Sign in to your social media accounts within the application.
  2. Create a new post and specify the date and time for it to be published.
  3. The application will automatically publish the post on the scheduled date and time.

Contributing

Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.

You can also read the notes.md file for more information on the project. - notes.md

License

This project is licensed under the MIT License.