Andreas "Zettt" Zeitler

Video producer.

about me

Hi. I’m Andreas. This is my short comprehensive self-summary. I work as video producer; improving the world of explainer videos. Motion graphics design, interaction design, screencasting, and audio engineering are dear to my heart. People say I’m passionate, hardworking, down to earth. My focus is on quality, equality, and elegance. I have a dedicated projects page.

My biggest management hero is Monkey D. Luffy from One Piece. Monkey is light-hearted, doesn’t take himself too seriously, but has a great goal — to become the biggest pirates of all. But him? Laughable! Despite all laughing Luffy consistently proves that he’s got his shit together. And that’s what I like.

List of pages

Cueing Up Downloads on the Go

Sometimes when I’m out and about, I want to download files at home. This is common when I’m on a holiday, and want to watch some YouTube movies. The hotel Wifi is often so unreliable that it’s a better option to download movies, and let them be sent to you by Dropbox or some other cloud storage provider.

Luckily readers of this blog are huge nerds and will appreciate some forward thinking in this regards.

This is based on a workflow I did in the past, where I would use a Dropbox text file to push links from an iOS device to a desktop computer. (Open iOS Tab on a Mac)

The essentials are still the same. You can use anything on a mobile device that creates a text file in Dropbox. We read that text file on the computer side, process the lines inside of it, and do something based on specific lines.

Please read Open iOS Tab on a Mac for information on the setup. This is still the same, though I want to add you can use Folder Actions as well.

The script we run at the end is a little bit more intricate:

set movielocation to "/Users/ME/Sync/Dropbox/Plex/YouTube/"

set singleItemNaming to "%(uploader)s %(title)s.%(ext)s"
set playlistNaming to "%(playlist)s/%(playlist_index)s - %(uploader)s %(title)s.%(ext)s"

set youtubedlcommand to "/usr/local/bin/youtube-dl"
set youtubedlFormat to "--format '(mp4)[height<=?1080]/best'"

repeat with thisItem in inputAttributes
  if thisItem contains "" and thisItem contains "playlist" and thisItem does not contain "?list=WL" then
      log "playlist"
      set cmd to youtubedlcommand & " " & youtubedlFormat & " " & "--output " & (quoted form of movielocation) & (quoted form of playlistNaming) & " --quiet " & (quoted form of thisItem)
      do shell script cmd
  else if thisItem contains "" then
      log "single item"
      set cmd to youtubedlcommand & " " & youtubedlFormat & " " & "--output " & (quoted form of movielocation) & (quoted form of singleItemNaming) & " --quiet " & (quoted form of thisItem)
      do shell script cmd
      open location (thisItem as string)
  end if
end repeat

You see that I choose to run a different command based on whehter the text contains a playlist. If it is a playlist, youtube-dl creates a folder containing the playlist items. Files inside playlists contain the playlist index in their filename, so they are easier to sort.

Of course you can get creative with this. In this example I match the URL inside the AppleScript. But there are ways to do this in Hazel, too. You can create one rule for each platform you want to download from.

To download single files, check out curl.


As described in the original post, you can use whatever you like. My personal favorites are:


Export Moves-Export Storylines to Single-Day GPX Files

This solution is butt ugly! But I tried to export my Moves data a couple of times now, and it didn’t work as I expected it to. I’d like to have every single day as single GPX files, just as their own automated Dropbox export does. With this workflow, I was able to make it work finally work. It’s not super straight forward, and not a round solution, technically, but in about 30 minutes you are going to have all your data, to do whatever you want with it. I believe that’s a fair trade.

Go to and view your history. The important information here is your first and last day. Please take a look at the link of the day itself. The displayed text, and the storyline URL is always one day off. So if it says 2016-04-07 (YYYY-MM-DD format) on the page, the URL is actually something like startdate=20160406. Notice that the day is one day behind.

We need to generate a list of URL’s to download. I couldn’t get this to work with curl, so I did it differently, and it’s going to put some pressure on your browser!

(Open image to view in original size.)

  • Open a new spreadsheet and create a list of dates. I did this in Google Sheets.
  • First column should have everything in front of startdate. So it’ll be in my case.
  • The second column will hold the dates to export. Type in the current day’s date. Then go to Format → Number → More Formats → More date and time formats.
  • Choose one that comes close to the expected date format. I took the one with - between and removed the - signs.
  • Now fill the entire column until your first/last day in Moves Export. (Highlight the second columns' box and click the square bottom right of the selected cell, then drag upwards or downwards.) This will fill the entire column with dates in the chosen format.
  • Select the second column, go to the third column and paste everything. Then while it’s still selected go to Format → Plain Text. This should leave the text, and only the text, and remove the formatting we chose earlier.
  • Now in the third column create a new formula: =A1&C1, and hit return. It will concatenate the text in the first column, and third.
  • Select the third column and copy the text to a new text file.

This new text file now has ALL download links, of every day (even those where Moves didn’t work properly).

Create a new shell script with the following content (OS X 10.11).


for file in $(<dl-list.txt)
    open "$file"

!!! Note: The open command is going to open EVERY. SINGLE. LINE. in your default browser. I couldn’t get any of download manager to resolve the download correctly. It only worked, when logged into, and in the browser. Therefore I figured the easiest solution is to let the browser do the heavy work, and just wait for it to finish. Which it did. Eventually.

Now execute the shell script, and wait. In my case I’m using Google Chrome as browser, and it didn’t catch all downloads. I had to manually ⌘R each page where it didn’t load, but that’s a small price to pay, considering I don’t have to click small little links on a page. The easy thing is that you can hold ⌘ then type wr, wr, wr, etc. This will reload the page, and close the tab, reload, close, reload, close. In the end I ended up with exactly the amount of GPX files, that I had in my text file of download URL’s. You can check the correctness with a file diff. Some of the segment names are off, but the track itself is the same.


OmniFocus: Day Projects

With OmniFocus and a normal calendar I was usually lacking some kind of easy filing system for small one-off items, until I came up with Day Projects. I’m using Day Projects for over 2 years now. And it’s still one of the best things that I’ve invented. Right next to Priorities. Apparently I never wrote about it though.

written Read on →

Doing Cardio at Home

I enjoy working out. Quite a lot actually. Some weeks more, some weeks not at all. I haven’t been in the gym for about a year now. Only working out at home or outside. One thing I didn’t yet manage to do at home: cardio. Cardio is workout for the heart. Cycling, running, swimming those are some of the most popular cardio exercises. Why am I investigating this now? The winter comes and running outside gets a little bit too frosty. I’d rather run inside, even if I don’t like it. The problem is: I don’t have a treadmill at home, and I don’t have any plans to buy one. So what to do?

Luckily there are options to get the heart pumping without going outside, or going inside the gym.

written Read on →


Folks think about romanticism often in terms of love and relationships. That is true, but it also relates to other areas as well, as I found out.

What strikes me is how many people believe it’s a bad thing. Women tend to have a negative opinion towards romanticism because they had bad experiences with significant others who promised heavens, who weren’t able to realize their illusion.
In science, romanticism has a bad rep because it’s unreal. It’s not touchable. You can’t predict whatever the result of a romantic thought is going to be.

written Read on →

Unprofessional and Non-Professional. What's the Difference?

Sometimes people in the “professional” environment say “it’s unprofessional” to do something. People who work “unprofessionally”, but think they work “professional” react appalled to statements like that. Of course they do work on a professional level, they say, but they do not realize the implications of the saying “unprofessional” and “professional”.

For many folks in the industry professional doesn’t mean “uses professional equipment”. Professional refers to someone who makes money doing something. The professionality level is not distinguished by the amount of knowledge they have about a certain topic, or the level they produce at – making money is.

I wrote about FCPX’s “professional” approach before. It is a recommended read, because it hopefully gives more context to my answer here. When someone from the industry say someone is unprofessional it’s not meant bad, it just means “doesn’t generate money”.

If you ask me, it is totally okay to work, e.g. on a podcast or a YouTube channel on a non-professional level. The creators often also think that way. What gets to people though is when you say they are “unprofessional”. It’s got a really negative sound to it, doesn’t it?

As this is my public “diary”, maybe I just want to think about the prefix of being un-something or being non-something.


Why Monkey D. Luffy Is My Biggest Hero

This is a repost of a posting I did on my old blog. It feels appropriate to have this here because Monkey is so prominently featured here. In case you have read the old version, it is probably not worth your time to read this again.

A couple of weeks ago I started watching one of my favorite TV series of all times: One Piece. zCasting 3000 is the thing that I spend many hours building. How is this place going to be like? I recalled One Piece that I used to watch when I was 17 or so. What I liked about One Piece was not just the story, but the way the main character, Monkey D. Luffy, approaches his goal of becoming the king of pirates.

written Read on →


We’re living in the mobile future. This future is bright, colorful, endless but also very limited to one screen only. This is the screen of your phone. This phone rings for attention – constantly. It wants to tell you when something new is happening.

In this post I want to argue that modern technology is not so useful to us anymore. We have surpassed the time where computers were built to “work for us”. It is evident now that computers won’t do the work for us. They can do only parts of our work, but they can’t replace the entirety. We’ve tried it.

written Read on →

Workflow Workflows

Workflow for iOS has quickly become one of my favorite automation apps on my iPhone. I have never been very happy with Launch Center Pro because setting up URL’s always sounded like shit work to me. Workflow does away with all the URL nesting and complicated escaping, or not escaping. It comes with the drawback that the app is really slow, but that outweighs the annoying fiddling with URL’s that just don’t want to work.

This post lists some of my favorite workflows.

written Read on →

How to Roll Multiple Projects in Multiple Companies

If you are like me, you’ve got more than one thing cooking. I’m always involved in multiple projects. Especially now as my newer(ish) role as producer, I’m getting involved with existing projects, and I get to see how other folks decided to plan and produce a show. That’s common in the creative industry, and for the past two years I’ve come up with a system that works so incredibly well that I want to share it with you.

written Read on →