The journey of
the Unofficial
Brunei Times

Website - wget


wget --mirror --convert-links 


How to get the files?

Live demo (fingers crossed):

Been down this road before

Download all the things!

mkdir 161001
wget -c "$URL/getZoom.jsp?id=160101bruneitimes&file=Zoom-1.jpg" -O 1.jpg
wget -c "$URL/getZoom.jsp?id=160101bruneitimes&file=Zoom-2.jpg" -O 2.jpg
wget -c "$URL/getZoom.jsp?id=160101bruneitimes&file=Zoom-3.jpg" -O 3.jpg
wget -c "$URL/getZoom.jsp?id=160101bruneitimes&file=Zoom-4.jpg" -O 4.jpg
wget -c "$URL/getZoom.jsp?id=160101bruneitimes&file=Zoom-5.jpg" -O 5.jpg
wget -c "$URL/getZoom.jsp?id=160101bruneitimes&file=Zoom-6.jpg" -O 6.jpg

zip -r 1610*

Offload a backup!

Bandwidth + Quota


send_document <peer> <file>

If peer has a space, replace with _

./telegram-cli --enable-msg-id

history <peer>

load_document <msg-id>

Where to host?

Google Photos!

Nothing official

We love big red warnings

Still have a chance!

We have upload code!

    "require": {
        "google/apiclient": "^2.0"


// Get a service account key from 

// email address of the user to upload data with
$user_to_impersonate = "EMAIL@DOMAIN.COM"; 

Google Photos!


Wrong EXIF

Back to the docs!


Time to share!

Back to the drawing board

Right the EXIF wrongs

exiftool '-datetimeoriginal=2016:01:18 12:00:00' \
   -overwrite_original_in_place test.jpg

Oldie but a goodie

API Docs with Libraries!

Thank you good API

More solutions more problems

API drops - 1 or 2 months per session

<!— status code : 502 —>
<!— Server Connection Closed —>
<!— host machine: —>
<!— timestamp: 1481898655.000 —>
<!— url:>

More solutions more problems

Out of ordered uploads (drag and drop...)

Internet to the rescue

  def order_photosets_by_title
    ordered_list = load_photoset_list.sort { |a,b| 
       (b[:title] || "") <=> (a[:title] || "") }
    ordered_ids = { |set| 
       set[:id] }.join(',')
       { :photoset_ids => ordered_ids }, :post)

Thank you again good API

To the public!

Thank you yet again good API

Cover view creation!

33MB but... 1125 requests! => 8 requests

Hosting part deux


  • A good API is good
  • Server side command line stuff is great
  • Research end to end first!
  • A good API is great
  • Old tech is still good tech
  • Google API servers are fast and robust
  • Flickrs API servers are not so...
  • A good API is fantastic

The Journey of the unofficial Brunei Times Archive

By Timothy Lim

The Journey of the unofficial Brunei Times Archive

  • 1,890