The app for independent voices

Hey everyone,

I recently undertook the task of migrating my Instagram content to my Bluesky account, and I'm excited to share the process and my experience with you. For those of you considering making a similar move, here’s a step-by-step guide and some insights from my journey.

Tools and Preparations:

Before diving into the migration process, I had to set up some essential coding tools on my Mac:

  • Node.js: This runtime environment allowed me to execute the code necessary for the migration.

  • Required Modules: I installed specific modules required for the program. You can typically find these listed in the documentation of the migration tool.

Steps to Migrate:

  1. Download the GitHub repo: You can find the tool at github.com/marcomaroni-…. Simply open a command line and run the following command to download the files:

    git clone github.com/marcomaroni-…

  2. Download your Instagram Content: You can’t migrate the data directly from your Instagram account - you have to download the content from Meta first. At the time of this writing you can find instructions on how to do that help.instagram.com/1812…. You’ll receive an email when the content is ready to download and it will be a .zip file which you will have to decompress/unzip.

  3. Installing Node.js and Modules: To get started, I installed Node.js from nodejs.org/en and the necessary modules. This step is crucial for running the migration script.

    Required Modules: I had to install some specific modules required for the program. The GitHub repo informs you about installing typescript and ts-node, but I also had to install some others too. Once you get Nodejs installed, you can run the following commands from a command line:

    npm i -g typescript

    npm i -g ts-node

    npm i -g @atproto/api

    npm i -g types

    npm i -g fs

    npm i -g dotenv

  4. Creating an App Password: Since the program needed access to my Bluesky account, I created an app password. This password is used by the script to perform the import. Important tip: You can (and should) delete this password once the migration is complete to ensure your account remains secure.

  5. Selecting a Specific Date Range: To ensure I imported only the most relevant content, I specified a date range for the posts I wanted to transfer. This feature is incredibly handy if you have a vast collection of posts and want to focus on a particular timeframe.

  6. Set the Environment Variables: in the folder where you downloaded the GitHub files, create a file named .env (correct - the name is just a dot and the extension) and paste the following into it. Make sure you change the values inside the quotes “ “ to reflect your correct info. You can remove the SIMULATE line from the file once you’re ready to do the actual import.

    BLUESKY_USERNAME="my-account-name.bsky.so…"

    BLUESKY_PASSWORD="xxxx-xxxx-xxxx-xxxx"

    ARCHIVE_FOLDER="/Volumes/Files/instagram-my-instagram-name-2025-01-21-UP8nERZb"

    MIN_DATE="2023-02-14"

    MAX_DATE="2024-11-26"

    SIMULATE=”1”

  7. Preserving Date Order: One of the highlights of this migration tool is that all imported posts retain their original date order. They appear on Bluesky with the correct dates, not as new posts with today’s date and time. This feature helps maintain the chronological integrity of your content.

The Outcome:

The migration process went smoothly, and I’m thrilled with the results. All my selected posts are now live on my Bluesky account, looking just as they did on Instagram. Here are the links to follow my journey and check out my portfolio:

I hope this guide helps anyone looking to migrate their content seamlessly. If you have any questions or need further assistance, feel free to reach out!

Happy posting! 📸✨

Jan 22, 2025
at
1:11 AM
Relevant people

Log in or sign up

Join the most interesting and insightful discussions.