Jump to content

Import Apple Notes into Evernote


Recommended Posts

I'm trying to import Apple Notes into Evernote but having some difficulty...

 

I installed an app called exporter and it shows it exported all the files correctly in both markdown file format and HTML.

 

However, when I try to bulk import either format it does a bunch and then spits out an error not completing the rest. And all the imports in Evernote has either the HTML or MD file as an attachment. It is not the notes directly and editable.

How can I find out what the error Evernote is having is? Is there a limit how many selected files it can import in one go? Is the imported format supposed to be like that ie MD/HTML attachment?

I was hoping I can just export everything from Apple notes and simply import into Evernote directly (not as attachment).

Link to comment
2 hours ago, mackid1993 said:

It's not going to be simple, but something like this Python script I found after a quick search may be helpful: https://github.com/karloskalcium/md2enex

Thanks but that seems pretty complicated. Is there a simpler method?

 

It's 2024. How could Evernote not have a MD or HTML importer function built in? Does it still only support it's own enex files?
Most everyone else naturally supports multiple import formats including MD/HTML.

Link to comment
1 hour ago, Fgsf said:

Thanks but that seems pretty complicated. Is there a simpler method?

 

It's 2024. How could Evernote not have a MD or HTML importer function built in? Does it still only support it's own enex files?
Most everyone else naturally supports multiple import formats including MD/HTML.

Evernote imports enex files. To import notes from another application into Evernote you need to convert them to enex. The documentation for that tool is extremely clear and it seems tailored to Apple notes exports. 

Link to comment
8 hours ago, mackid1993 said:

Evernote imports enex files. To import notes from another application into Evernote you need to convert them to enex. The documentation for that tool is extremely clear and it seems tailored to Apple notes exports. 

Correct me if I'm wrong but isn't enex evernotes own format? Txt, MD, HTML it attaches instead.

When most every other app has built in tools encouraging onboarding of customers from other apps I don't see why evernote is incapable of building or incorporating one itself.

https://www.bitrecover.com/evernote/converter/

Great for moving out but not in.

Link to comment
59 minutes ago, PinkElephant said:

ENEX is a HTML derivative - it is used by many note apps. It is well defined, open book.

Doesn't change the fact that ENEX is evernotes own file format.

Legacy supported importing HTML at least.

Now, NOTHING is supported by default properly except for ENEX.

Link to comment
23 hours ago, mackid1993 said:

Contact support or send feedback to feedback@evernote.com, I tried to help you.

Thanks. Did both and no response yet.

Link to comment

Apparently evernote is not interested in attracting new customers with easy onboarding or allowing their current ones to easily import their notes from the main competitors or in most common formats. :(

 

Link to comment
On 2/28/2024 at 11:00 AM, Fgsf said:

Doesn't change the fact that ENEX is evernotes own file format.

Legacy supported importing HTML at least.

Now, NOTHING is supported by default properly except for ENEX.

If older versions of Evernote imported HTML, you can still install Evernote Legacy, do the import, and then upgrade to the new version.

But I only have the windows installation. On the web, you can get a few, for example via https://archive.org/web/

A few days ago I used Legacy to transfer a large number of notes from one account to another.

Link to comment
On 3/3/2024 at 11:59 PM, ferol said:

Thank you. I really hope they respond and get to this very soon. Already been waiting years with no word and it doesn't seem like it's on their future schedule still either.

It's like they are pushing you to go elsewhere and further locking things down instead. Legacy now appears killed too.

Little surprise the general exoduses and the new owners haven't helped either.

Link to comment

Let's see what can be done by collecting and selecting feature requests and enhancements from our forum users.
Currently @AlbertR is already working with me on that spreadsheet and he is testing another way of handling these bugs. We just need to figure out how to talk the BS into taking a look at it 

  • Like 2
Link to comment

https://github.com/karloskalcium/md2enex

It's pretty simple to run on a Mac in a Terminal:

  • Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Install pandoc
brew install pandoc
  • Install pyenv
brew install pyenv
  • Clone the repo

cd to home

cd ~/

Clone the repo

git clone https://github.com/karloskalcium/md2enex.git
cd md2enex
  • Install Python
pyenv install 3.10.13

Configure shell for pyenv

Assuming zsh on a Mac run in a Terminal run the following commands one after another.

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

Now close out of Terminal and open a new one.

Run one by one:

pyenv version
python --version

Both should output 3.10.13. If it doesn't the shell isn't properly configured for pyenv.

Now run one by one

make virtualenv-install
source ENV/bin/activate

Finally convert the markdown files from Apple notes into an enex file to import into Evernote:

Copy all of the markdown files into the root of a folder in /Users/username or ~/ (same thing). Name the folder forevernote.

Now run:

  ./md2enex.py -d ~/forevernote -o forevernote.enex

@Fgsf I hope this can help you get set up.

Link to comment
  • Level 5*
4 hours ago, mackid1993 said:

It's pretty simple to run on a Mac in a Terminal:

I think we define “pretty simple” differently.

  • Like 2
  • Haha 1
Link to comment
51 minutes ago, mackid1993 said:

Comments like this are why I'm hesitant to help people...

I think maybe @s2sailor intended his comment to be humorous?  Might still be helpful to the OP, so that time to write the process may still be helpful to him/her or another reader...

 

Vinnie

  • Thanks 1
Link to comment
24 minutes ago, PinkElephant said:

Kudos for going through the effort !

Thanks. I was trying to simplify the process for OP.

I hope @s2sailor was being humorous. That took me a solid 20 mins to write up. I don't even use a Mac, I just tried to simplify the documentation. It's really the only way to automate an import of Apple notes into Evernote.

  • Like 2
  • Thanks 1
Link to comment
  • Level 5*
54 minutes ago, mackid1993 said:

I hope @s2sailor was being humorous.

Me attempting a little humor here … never 😀.  I was just having a little fun at your use of pretty simple after typing up a fairly lengthy procedure, which I do appreciate that you spent the time doing.  No harm meant.

Link to comment
1 minute ago, s2sailor said:

Me attempting a little humor here … never 😀.  I was just having a little fun at your use of pretty simple after typing up a fairly lengthy procedure, which I do appreciate that you spent the time doing.  No harm meant.

It is fairly simple, just a couple of commands. Moreover it's the only way OP is going to import their notes without copy and paste.

  • Like 1
Link to comment

@mackid1993

Thanks for the write up. Couple of issues though. I had tried but the Mac was old and wouldn't install homebrew properly. And now I don't have a Mac to even try. Just exported copies of my notes in HTML/MD and iCloud backup.

 

Yep they all have enex import options even OneNote :lol:

 

Only one special is evernote...

Link to comment
26 minutes ago, Fgsf said:

@mackid1993

Thanks for the write up. Couple of issues though. I had tried but the Mac was old and wouldn't install homebrew properly. And now I don't have a Mac to even try. Just exported copies of my notes in HTML/MD and iCloud backup.

 

Yep they all have enex import options even OneNote :lol:

 

Only one special is evernote...

Sorry to hear that. I wish I had a better answer for you. Homebrew tends to need Monterey or higher for most packages.

This is off topic but if you want to breathe some new life into your old mac look into Open Core Legacy Patcher. https://dortania.github.io/OpenCore-Legacy-Patcher/

  • Like 1
Link to comment
3 hours ago, mackid1993 said:

Sorry to hear that. I wish I had a better answer for you. Homebrew tends to need Monterey or higher for most packages.

This is off topic but if you want to breathe some new life into your old mac look into Open Core Legacy Patcher. https://dortania.github.io/OpenCore-Legacy-Patcher/

Yep and unfortunately couldn't get it to work. Thanks for trying though.

 

Evernote and BS need to act on this. It's a known issue years old and all their competitors offer built in working solutions. No excuses left.

Link to comment
  • Level 5

The logic they NEED to do something to import data from another app evades me.

Why do they need to do this ? If they don’t, they risk a share of future business against the effort to build and maintain an importer. That‘s a decision every business takes every day. You must not like it and can ask for an improvement:

You can buy a Ford Modell T in any color, as long as it is black …

Link to comment

The mass exoduses, loss of market share and even more difficulty in acquiring new customers is the result. Rest on your laurels in today's competitive world and you will fade into obscurity as countless companies have proven.

 

Ford's context was very different and a long gone era. Ford as a company is also no longer what it used to be.

 

No response from them still. And no surprise given it's well known issue and reported by many.

  • Like 1
Link to comment
1 hour ago, PinkElephant said:

The logic they NEED to do something to import data from another app evades me.

Why do they need to do this ? If they don’t, they risk a share of future business against the effort to build and maintain an importer. That‘s a decision every business takes every day. You must not like it and can ask for an improvement:

You can buy a Ford Modell T in any color, as long as it is black …

I disagree with this. Any commercial company that wants to succeed in the long term has a vested interest in making it as easy as possible for potential clients to access its products. Evernote is no exception to this...
It's complicated at the moment, which means that people are mainly leaving Evernote, and those who are trying to come in are having a very difficult time.
 

  • Like 1
Link to comment
  • Level 5

Probably they don’t see Apple Notes as a close contender in terms of the user profile.

It is always free (the only general paid option is iCloud storage) and it is Apple ecosystem only.

EN is subscription based, brings its own cloud and is deliberately cross platform.

It is always a question where you invest the dev hours you have. Into a specific import routine that will serve only those few who want to migrate - or into general features and stability.

We all know where the main demand from users have been.

  • Like 1
Link to comment
7 hours ago, Robejazz said:

I would love a way to get BACK to Evernote from Obsidian. I am hoping this can be developed. I will also write to Evernote support.

Would be funny if Bending Spoons created an Obsidian plugin and called it ARLO*. It would read your Obsidian-based markdown notes and generate one or more ENEX files. (Technically, anyone/devs can do this.)

(*ARLO stands for A Rope Ladder From Obsidian. A play on the infamous YARLE - Yet Another Roper Ladder From Evernote tool. No "Y" in the ARLO, because it would be the first ladder going the other way from Obsidian AFAIK.)

One reason that I don't believe Bending Spoons would do it though, is because the support of it (both development and supporting customers) would be more trouble and money than it is worth. Most people aren't going to leave a free-based platform to move to Evernote which costs a bit of money. Some will obviously, but I think most won't. You never know though.

Link to comment

But you can import HTML and Markdown.. it doesn't have to be about specific support for a specific competitor..

But competitors are easily taking over Evernote clients thanks to these tools...

  • Like 1
Link to comment
  • 3 weeks later...
On 3/6/2024 at 7:47 PM, Robejazz said:

I would love a way to get BACK to Evernote from Obsidian. I am hoping this can be developed. I will also write to Evernote support. 

Did you hear back anything meaningful from them?

Link to comment
  • 2 months later...

@mackid1993 I have question about this step...

Quote

Finally convert the markdown files from Apple notes into an enex file to import into Evernote:

Copy all of the markdown files into the root of a folder in /Users/username or ~/ (same thing). Name the folder forevernote.

Now run:

What do you mean by "convert the markdown files..."? All of the other steps seem to have happened in the Terminal. But this step confused me. Thanks!

Link to comment
  • 1 month later...

You dont have to convert anything. Just place the markdown files / folder in /Users/username. The process described did not work for me entirely, but served as base to then take it up with Chat GPT. 

Here’s a revised version of the script to handle images, attachments, and proper referencing within the ENEX file:

import os
import glob
import mistune
import html
from datetime import datetime, timezone
import base64
import hashlib

def encode_file(file_path):
    with open(file_path, "rb") as file:
        encoded_file = base64.b64encode(file.read()).decode('utf-8')
    return encoded_file

def calculate_md5(file_path):
    hash_md5 = hashlib.md5()
    with open(file_path, "rb") as f:
        for chunk in iter(lambda: f.read(4096), b""):
            hash_md5.update(chunk)
    return hash_md5.hexdigest()

def convert_md_to_enex(md_file):
    with open(md_file, 'r', encoding='utf-8') as f:
        md_content = f.read()

    html_content = mistune.markdown(md_content)
    title = os.path.basename(md_file).replace('.md', '')
    now = datetime.now(timezone.utc).strftime('%Y%m%dT%H%M%SZ')

    # Handling images and attachments
    attachments_path = os.path.join(os.path.dirname(md_file), 'attachments')
    resources = ''
    if os.path.isdir(attachments_path):
        for attachment_file in os.listdir(attachments_path):
            attachment_path = os.path.join(attachments_path, attachment_file)
            if os.path.isfile(attachment_path):
                encoded_file = encode_file(attachment_path)
                md5_hash = calculate_md5(attachment_path)
                mime_type = 'application/pdf' if attachment_file.endswith('.pdf') else 'image/png'
                if mime_type.startswith('image'):
                    image_tag = f'<img src="data:{mime_type};base64,{encoded_file}" alt="{attachment_file}"/>'
                    html_content = html_content.replace(f'![]({attachment_file})', image_tag)
                else:
                    # Add as an attachment reference in the note
                    attachment_tag = f'<en-media type="{mime_type}" hash="{md5_hash}"/>'
                    html_content += f'\n\n{attachment_tag}\n\n'
                resources += f'''
<resource>
    <data encoding="base64">{encoded_file}</data>
    <mime>{mime_type}</mime>
    <resource-attributes>
        <file-name>{html.escape(attachment_file)}</file-name>
        <source-url>file://{html.escape(attachment_path)}</source-url>
    </resource-attributes>
</resource>'''

    folder_tag = os.path.basename(os.path.dirname(md_file))
    
    enex_note = f'''<note>
        <title>{html.escape(title)}</title>
        <tag>{html.escape(folder_tag)}</tag>
        <content><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
<en-note>{html_content}</en-note>]]></content>
        <created>{now}</created>
        <updated>{now}</updated>
        {resources}
    </note>'''

    return enex_note

def main():
    md_directory = '/Users/ashu/Downloads/Apple Notes/iCloud'
    enex_file = os.path.join(md_directory, 'output.enex')
    md_files = glob.glob(os.path.join(md_directory, '**/*.md'), recursive=True)
    
    print(f"Found {len(md_files)} markdown files.")
    
    enex_notes = []
    for md_file in md_files:
        print(f"Processing {md_file}")
        enex_notes.append(convert_md_to_enex(md_file))

    enex_template_start = '''<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export.dtd">
<en-export export-date="{}" application="Evernote" version="10.0">
'''.format(datetime.now(timezone.utc).strftime('%Y%m%dT%H%M%SZ'))

    enex_template_end = '</en-export>'

    with open(enex_file, 'w', encoding='utf-8') as f:
        f.write(enex_template_start)
        f.write('\n'.join(enex_notes))
        f.write(enex_template_end)

if __name__ == '__main__':
    main()

 

Myimage.thumb.png.b7df8078135c30bc5022c03d64e807e8.png

My aim is not confuse anyone. I dont know Python. So I continued asking Chat GPT and eventually achieved more than partial success.

  • Thanks 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...