summaryrefslogtreecommitdiff
path: root/posts/2019-07-04-the-best-way-to-transfer-gopro-files-with-linux.md
blob: bb2b164a6f21edd43d6f42248bb84d6c8c43d676 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
---
permalink: "/posts/{{categories}}/{{slug}}"
title: The Best Way to Transfer GoPro Files with Linux
categories:
  - technology
tags:
  - gopro
  - camera
  - video
  - download
  - linux
  - wireless
published_date: "2019-07-04 21:54:49 +0000"
layout: post.liquid
is_draft: false
---
Transferring files off of most cameras to a Linux computer isn't all that
difficult. Normally I can rip out the SD card and transfer files or just use a
USB data transfer of some kind. The exception is my GoPro Hero 4 Black. For 4th
of July week I took a bunch of video with the GoPro, approximately 20 MP4
files, about 3GB each. The annoying thing about the GoPros USB interface is
you need an app to download everything this way. The camera doesn't just show
up as a USB device that you can mount. The GoPro does have a micro-SD card but
I'm away from home and didn't have any dongles or adapters.

The solution? GoPro cameras, after the Hero 3, can open up an ad-hoc wireless
network that lets you browse the GoPro's onboard files through an HTTP server.
This means you can open your browser and scroll through the files on the camera
at a intranet address, `10.5.5.9`, and download them one by one. Well if you
have like two dozen videos on there it kinda sucks. 

> *Smiles warmly*

So, I opened up the manual for `wget`. I'm sure you could get really fancy with
some of the options but the only thing I cared about was downloading every
single MP4 video off of the camera, automatically. I did not want to download
any of the small video formats or actual HTML files. So here's what I did:

```sh
$ wget --recursive --accept "*.MP4" http://10.5.5.9:8080/
```

This tells `wget` to download all of the files at the GoPro's address
recursively and skips any that don't have the MP4 extension.  Now I've got a
directory tree with all of my videos in it. And the best part is I didn't have
to install the dinky GoPro app on my laptop. Hopefully this helps if you're
looking for an easy way to migrate lots of footage without manually clicking
through the web interface or installing additional software. The only downside
is if you're moving a whole lot of footage, it's not nearly as quick as just
moving files off the SD card. So I'd shoot for using the adapter to read off
the card first and only use this if that's not an option, such as when the
camera is mounted and you don't want to move it.

Some things I would like to change/add:

- Download all image files as well; should be easy, just another `--accept`
- Initiate parallel downloads
- Clean up the directory afterwards so I just have one level of depth

I could probably write a quick and dirty shell script to do all of this for me
but I use the camera so infrequently that it's probably not even worth it.