coffee

antennapedia

Antennapedia

Books, swords, and tweed.

research

Journal migration tool

I've written a command-line tool for migrating journal entries from any LJ-style server to any other LJ-style server. This tool needs testers. It should run on any system with a recent Python installed. That means OS X out of the box, most Linux distros, and any Windows system where the user has installed python.

Get it
Github: ljmigrate
Tarball: ljmigrate.tar.gz
Zipfile: ljmigrate.zip
Latest version: 1.5 090110a Sat Jan 10 23:51:35 PST 2009
Documentation: README, README for Windows

Features
- Archives entries, comments, and user pics locally.
- Can optionally generate simple html versions of entries with comments and a userpic.
- Can optionally migrate from one LJ-style server to another. E.g., from LiveJournal to InsaneJournal. Post metadata (user pic keywords, mood icon, tags, music, location) is preserved when the destination supports them. Privacy info is preserved: if a post is private or flocked in the source, it will be private or flocked at the destination. Custom filters aren't moved, though.
- Can optionally migrate only posts with particular tags, if you want to move only a portion of a journal to a new service.
- Archives communities. Can also migrate them. Community comments are also archived. See README.
- Cannot migrate comments or memories. These limitations are LJ limitations.

Tutorials
karma_apple's illustrated tutorial for Windows users
alter_writes's illustrated tutorial for Mac users
lumnata's detailed instructions

Instructions for Terminal-comfy Mac users:
Download the tarball: ljmigrate.tar.gz
Safari will warn you that it might contain an application. (Oh noes!) Firefox/Camino won't.
Unpack it. (Double-clicking works.)
Run the Terminal.
Change directories to wherever it was you unpacked the file. E.g., cd ~/Desktop/ljmigrate
Read the README.
Edit the config file ljmigrate.cfg to mention your accounts.
Run the tool in the Terminal: ./ljmigrate.py
Watch. Wait. Report results to me in a comment here.
To use a new version of the tool, just move or copy your account folder into the folder for the newer version.
./ljmigrate.py --help provides usage info.

Instructions for Terminal newbies are in the README.

Thanks to: ldybastet & kannnichtfranz for early testing & bug-reporting.

Known bugs:
1) Migration will fail for posts that use LJ features you don't have permission to use on the destination. For instance, polls: if your LJ post has a poll but you haven't paid for polls on IJ, it'll fail.

Call for Windows help
I'd like to write up detailed instructions for non-technical Windows users who'd like to use this (say, to migrate communities). Could one of you give me a hand with this task? Thanks!
  • Current Mood: cynical
  • Current Music: Polar Bear : Ride : Nowhere
Tags: , ,
If you do multiple runs while testing, you'll want to delete from the target journal the posts you migrated on earlier runs. Otherwise you'll end up will grillions of identical posts on your destination :) If you don't do multiple runs, don't worry. You need do nothing. Don't delete anything from your LJ account.
Question :)
If I migrate my stuff now and want to do so again in say, half a year, I will have the stuff I migrate now twice, right? Is there a possibility to let the script check for the (last?) posts which are already there, so migrating could be done on a monthly basis for example?
What do I do when I run the script and it only migrates three years out of 5? I'd rather not delete my LJ just yet. Can I restrict the entries being migrated?
Did it complete normally and just skip the entries? Or did it stop in the middle? If you re-run it, it will pick up where it left off. And if you run with the "--retry" option, it will start from the beginning, re-download everything, and try to move *only* the entries it didn't move the first time through.

I need to make this task easier to do, I know, but it should do the right thing if you run it again.
I just launched it and let it do its thing. It did not stop or anything, but I have to admit I did not look at the terminal for the entire process, I just let it to its thing. As far as I know, it simply skiped 2006 and 2007 entirely.

You are viewing antennapedia