Several people have approached me in the last few days asking me about how can one transfer one's blog from LJ to Vox. I will try now to answer this question in a manner as detailed as possible.
First, there is the option to use Vox's import feature. Regretfully, it is absolutely unusable. It does not import comments, nor tags or security settings. What's more, it only goes back as far as, IIRC, 25 posts. That's silly.
Once I discovered that, I wrote a script in Perl, that performs a more elaborate transfer. Please note that you have to be able to use Linux (including some level of skill with the command line) in order to use it. Perhaps, I will make a GUI application out of it some day, for now - this is all there is.
And here's what you have to do in order to make it work:
- Export your LJ (including comments) in a form of XML files. Use a script called ljdump.py (at the beginning of the file there are detailed instructions of how to run it). Once it is done, it creates a whole bunch of XML files, that contain all of the posts and all of the comments in your LJ.
- Install the Perl package XML::Atom. You will need to install a library called libxml2 (unless you already have it), make sure you install the dev package for it.
- Now download this patched version of XML::Atom and put it in place of the original one.
- Download this file, modify the enclosed configuration file according to the comments, and run the script.
That's it. There is one problem (I am aware of) with this script, namely: since it can't post comments on behalf of whoever posted the original comments, it posts them all on behalf of your own user, prepending the comment's text with the name of the original author. I may develop a GreaseMonkey script one day, that deals with this client-side.
As I said, it's all pretty cumbersome, but it is the only way for now.
Comments
Then, they must have fixed it. Good.
When I run the script I get the error
Use of uninitialized value $url in concatenation (.) or string at C:/Perl/site/lib/XML/Atom/Client.pm line 63, <FH> line 21.
replies
Can't call method "link" on an undefined value at C:\Users\john\lj\IMPORT_X.PL line 95, <FH> line 21.
Any suggestions?
Thanks.
If you mean did I extract the atom.tgz into the ATOM directory in site then yes.
If it means something else well...
If it matters I am working on a Windows machine unfortunately.
I now get another error but I think that is because livejournal is experiencing some "database issues".
Thanks for the great script and the help.