!pip install Pillow
from PIL import Image
from PIL.ExifTags import TAGS
import io
import urllib.request
import json
Collecting Pillow
  Using cached https://files.pythonhosted.org/packages/d1/24/f53ff6b61b3d728b90934bddb4f03f8ab584a7f49299bf3bde56e2952612/Pillow-5.2.0-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: Pillow
Successfully installed Pillow-5.2.0
!pip install piexif
import piexif
Collecting piexif
  Using cached https://files.pythonhosted.org/packages/15/44/df42948ce26047a4d34bf7d4333fad194f64d8b596db8472c0bcd57a18ec/piexif-1.0.13-py2.py3-none-any.whl
Installing collected packages: piexif
Successfully installed piexif-1.0.13
for id in  [255234975, 38025860, 39548244, 234853097, 234851541, 234852329, 234854245, 234858757, 234856783, 233511923, 233511031, 233515953]:
    r = urllib.request.urlopen('https://tools.wmflabs.org/import-500px/id/{}'.format(id))
    photo = json.loads(r.read().decode())[0]
    photo['file'] = Image.open(io.BytesIO(urllib.request.urlopen(photo['url']).read()))
    print(id)
    print(photo['file']._getexif()[270])
255234975
More: <a href="http://www.christianscheidegger.one">WEBSITE</a> | <a href="https://www.instagram.com/c.s.one/">INSTAGRAM</a>
38025860
Adarra - Miniworld
39548244
Howling At The Moon (Sha-la-la)
234853097
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
234851541
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
234852329
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
234854245
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
234858757
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
234856783
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
233511923
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
233511031
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
233515953
Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/
 
On Facebook <a href="http://www.facebook.com/gaillard.galopere" rel="nofollow">www.facebook.com/gaillard.galopere</a>

For prints, visit <a href="http://www.galopere-photo.com" rel="nofollow">www.galopere-photo.com</a>
for id in  [58260308]:
    r = urllib.request.urlopen('https://tools.wmflabs.org/import-500px/id/{}'.format(id))
    photo = json.loads(r.read().decode())[0]
    photo['file'] = io.BytesIO(urllib.request.urlopen(photo['url']).read())
    print(id)
    print(Image.open(photo['file'])._getexif())
58260308
{274: 1, 296: 2, 34665: 90, 282: (25400, 1000), 283: (25400, 1000), 40961: 1, 40962: 1000, 40963: 637}
def clean_exif(fp):
    im = Image.open(fp)
    fp = io.BytesIO()
    exif_dict = piexif.load(im.info['exif'])
    for k, v in exif_dict.items():
        if type(v) != dict:
            continue
        for k2, v2 in v.items():
            if type(v2) == bytes:
                if '<' in v2.decode():
                    exif_dict[k][k2] = html.escape(v2.decode()).encode('utf8')
    # app.logger.warning(exif_dict)
    exif_bytes = piexif.dump(exif_dict)
    im.save(fp, "jpeg", exif=exif_bytes)
    return fp
photo['file'] = clean_exif(photo['file'])
print(Image.open(photo['file'])._getexif())
{296: 2, 34665: 665, 270: 'Follow our trip on http://legaillardgalopere-equateur-a-bolivie.blogspot.com/\n \nOn Facebook &lt;a href=&quot;http://www.facebook.com/gaillard.galopere&quot; rel=&quot;nofollow&quot;&gt;www.facebook.com/gaillard.galopere&lt;/a&gt;\n\nFor prints, visit &lt;a href=&quot;http://www.galopere-photo.com&quot; rel=&quot;nofollow&quot;&gt;www.galopere-photo.com&lt;/a&gt;', 271: 'Canon', 272: 'Canon EOS 5D Mark III', 305: 'Adobe Photoshop Lightroom 5.7.1 (Macintosh)', 274: 1, 306: '2017:09:28 10:44:06', 315: 'Alexandre PATRIER', 33432: 'Alexandre PATRIER', 282: (240, 1), 283: (240, 1), 36864: b'0230', 37377: (6643856, 1000000), 37378: (6918863, 1000000), 36867: '2017:08:16 19:04:33', 36868: '2017:08:16 19:04:33', 37380: (0, 1), 37381: (7, 4), 37383: 5, 40960: b'0100', 37385: 16, 37386: (50, 1), 40961: 1, 40962: 2048, 41990: 0, 41486: (1600, 1), 41487: (1600, 1), 40963: 1365, 37521: '01', 41488: 3, 33434: (1, 100), 33437: (11, 1), 34850: 1, 41985: 0, 34855: 500, 41986: 1, 41987: 1}
photo['file'] = io.BytesIO(urllib.request.urlopen(photo['url']).read())
a = photo['file'].read()
a[-500:]
b'Ju*h\xa6\x86X\xac\xc7\xea\xa1\xce\x06\xb5\xf5\xcc\xb1\x8bu\xdc\xbe#\xc4+~\xed\x94\xcd4\xbe`J\xea\xcb\x95\xd4\xb3\x08\xf1r\xf4\xca\xd4\x1365\xfa\x8d\x8eA\xe0\x96n1\x9dk\xf9\x88Z\xbbE`\x1acX!H\xce\xd9Brzx\xe6\xa54:\xd4,\xf4\xff\x00\xd75\x91\xeb\xcc\x05\xdao6x\x89\xd1cy#U\xb4\x1d\x12\x8b)\xbcn`su\xacn6\x1c\x84\xef\xc6"\xd4\xe6\xa5\xd8=\x92\xab\x99[\xf7+e\xcb\xf1\x0b\xb6q\x89\xcdq\x16\x9fSt\xf6MC2\x89x\xb9V\x11T\x1cW\xf8r\x04/>!\x9b\xcb\xab\xfa\xff\x00\x1b\xcc\xacf8j\x19\x17\xa9\xb4\xf3\x1c7.\xff\x00\xc0\x15\x8cT\xbaO0\xe6\x16\x08g\x13\x88\xea\xe5\xdf\xc3\xfe/\xf5/4\xca\xc4q\xf5\x1d\x9e\x88\xff\x001\x0e\xa5K-\xeb1\x03\xeap2\xb7\x1c\xb0\xca\x9e\xff\x00\x12\xe8\xbe\xb1\x16U?\x17p\x15\xf5\x10cu\xcc\x08o\t\xd4\xc0\xe3\x1a\xfc\xc1y\xbe\xe2\x80\xae\xeat\xaf\xcc\xb1K\xba#\xb6<\xf1\x15C\r[\x96\r\x8f\x88\x0b\xf8\x98\xe09\x96\xc4\x16\xd9\x96}J\xaa\xf2\xc5\xb4\xb9_$\xbb\x0b\xab\x80lC\t.\x9a8\x94IU\xa8\x9bV+\x11\x00\xe1\x13UO\xdc5\xd5l\xc7\xa3\x88Ez\x89,;\xaa\x81\x7f\xbeb\xcc@\n\x8f&\xb7\x06\xf7\xdb\xc3\x7fw\x17\xa1}\xff\x00T\x84\x14*hCfMu\x13(\x1al\\\xbeb9\x815J\xfdL\x00\xdb\xc2\x1f\xc4\xd6\xe4US\xf8\x8cj\xf5Z\x0f\xea\xa6V/\x072\xf8\xcb\xc6%\x0f\xb80\xe2\xa6~\x97.\x06\xff\x00\xea\x94\x19\xf5\x05\x95n`\x15\xf2\xc7\xacL\x13\xd3\xa9J=\x83\x8cKUp]u\x81~\xa0!\xd5\xb9\xaf\x11\x05\xc3\x1b\xfa\xccP\x14n\xd9\xff\x00O\xfb\xc4+\x1cd\xfc\xc4\xb2\xcd`\xebQ\x01\x074\xfa\xb8\xa9L}E\xb5\xea\x8b\xaf\xc4\xb5\xabY\xd4%\x0f1)\xc5b\x8a\x89^\x8f\xe6\x7f\xff\xd9'
import html
html.escape(photo['file']._getexif()[37510].decode())
'ASCII\x00\x00\x00Please, feel free to comment. Much appreciated.\n\n&lt;a href=&quot;http://youtu.be/UmHoXqzy8GU&quot; rel=&quot;nofollow&quot;&gt;youtu.be/UmHoXqzy8GU&lt;/a&gt;'
photo['file']._getexif()[37510]
b'ASCII\x00\x00\x00Please, feel free to comment. Much appreciated.\n\n<a href="http://youtu.be/UmHoXqzy8GU" rel="nofollow">youtu.be/UmHoXqzy8GU</a>'
photo['iofile'] = io.BytesIO()
piexif.load(photo['file'].info['exif'])
{'0th': {270: b'Howling At The Moon (Sha-la-la)',
  271: b'NIKON CORPORATION',
  272: b'NIKON D3S',
  274: 1,
  282: (2400000, 10000),
  283: (2400000, 10000),
  296: 2,
  305: b'Adobe Photoshop CS5 Windows',
  306: b'2012:12:01 12:43:31',
  315: b'Urko Dorronsoro Sagasti',
  33432: b'Urko Dorronsoro Sagasti',
  34665: 330},
 'Exif': {33434: (1, 400),
  33437: (11, 1),
  34850: 1,
  34855: 400,
  36864: b'0221',
  36867: b'2012:12:01 09:14:46',
  36868: b'2012:12:01 09:14:46',
  37377: (8643856, 1000000),
  37378: (6918863, 1000000),
  37380: (0, 6),
  37381: (53, 10),
  37382: (501, 10),
  37383: 5,
  37384: 0,
  37385: 0,
  37386: (5000, 10),
  37510: b'ASCII\x00\x00\x00Please, feel free to comment. Much appreciated.\n\n<a href="http://youtu.be/UmHoXqzy8GU" rel="nofollow">youtu.be/UmHoXqzy8GU</a>',
  37520: b'20',
  37521: b'20',
  37522: b'20',
  40960: b'0100',
  40961: 65535,
  40962: 1576,
  40963: 1120,
  41495: 2,
  41728: b'\x03',
  41729: b'\x01',
  41730: b'\x02\x00\x02\x00\x00\x01\x01\x02',
  41985: 0,
  41986: 1,
  41987: 0,
  41988: (1, 1),
  41989: 500,
  41990: 0,
  41991: 1,
  41992: 0,
  41993: 0,
  41994: 0,
  41996: 0},
 'GPS': {},
 'Interop': {},
 '1st': {259: 6, 282: (72, 1), 283: (72, 1), 296: 2, 513: 1164, 514: 2673},
 'thumbnail': b'\xff\xd8\xff\xed\x00\x0cAdobe_CM\x00\x01\xff\xee\x00\x0eAdobe\x00d\x80\x00\x00\x00\x01\xff\xdb\x00\x84\x00\x0c\x08\x08\x08\t\x08\x0c\t\t\x0c\x11\x0b\n\x0b\x11\x15\x0f\x0c\x0c\x0f\x15\x18\x13\x13\x15\x13\x13\x18\x11\x0c\x0c\x0c\x0c\x0c\x0c\x11\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x01\r\x0b\x0b\r\x0e\r\x10\x0e\x0e\x10\x14\x0e\x0e\x0e\x14\x14\x0e\x0e\x0e\x0e\x14\x11\x0c\x0c\x0c\x0c\x0c\x11\x11\x0c\x0c\x0c\x0c\x0c\x0c\x11\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xff\xc0\x00\x11\x08\x00r\x00\xa0\x03\x01"\x00\x02\x11\x01\x03\x11\x01\xff\xdd\x00\x04\x00\n\xff\xc4\x01?\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x01\x02\x04\x05\x06\x07\x08\t\n\x0b\x01\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x10\x00\x01\x04\x01\x03\x02\x04\x02\x05\x07\x06\x08\x05\x03\x0c3\x01\x00\x02\x11\x03\x04!\x121\x05AQa\x13"q\x812\x06\x14\x91\xa1\xb1B#$\x15R\xc1b34r\x82\xd1C\x07%\x92S\xf0\xe1\xf1cs5\x16\xa2\xb2\x83&D\x93TdE\xc2\xa3t6\x17\xd2U\xe2e\xf2\xb3\x84\xc3\xd3u\xe3\xf3F\'\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf67GWgw\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x11\x00\x02\x02\x01\x02\x04\x04\x03\x04\x05\x06\x07\x07\x06\x055\x01\x00\x02\x11\x03!1\x12\x04AQaq"\x13\x052\x81\x91\x14\xa1\xb1B#\xc1R\xd1\xf03$b\xe1r\x82\x92CS\x15cs4\xf1%\x06\x16\xa2\xb2\x83\x07&5\xc2\xd2D\x93T\xa3\x17dEU6te\xe2\xf2\xb3\x84\xc3\xd3u\xe3\xf3F\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf6\'7GWgw\x87\x97\xa7\xb7\xc7\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xf3\x9cn\x89\x9d\x95K-\xc7\xf4\x9f\xea\x90\xd6W\xea\xb1\xb6\x12\xe7:\xa67\xd3{\xda\xed\xee{=\x8c\xff\x00\t\xfe\r\x12\xbf\xab}^\xd7T\xca\xabe\x8f\xb8\x80\xc6\xb6\xda\xf5$\xed\xda\xdf\xd2m{\x99\xfe\x1bg\xf4\x7f\xf0\xfe\x9a\x87\xed\x11\xff\x00q1\x7f\xed\xbf\xfc\xcd/\xda#\xfe\xe2c\x7f\xdbg\xff\x00&\x8d)\x80\xe9\x19\x7fdfY56\xa7\xb84\x03c7\x82\xe2\x19^\xea\xb7z\x8d\xf5=\xef\xaf\xdb\xfc\xd5V[\xfc\xda#\xfa\x0ekMd>\x87Us\x9a\xc6\\.`o\xb89\xfb\xdf\xbd\xcc\xb2\xba\xd8\xca\xdc\xfb,\xb2\xbd\x9b?\xe3j\xde\xdf\xb4G\xfd\xc4\xc5\xff\x00\xb6\xff\x00\xf34\xbfh\x8f\xfb\x89\x8b\xff\x00m\xff\x00\xe6iR\x99]\xf5\x7f\xa9T\xd78\xfa.k\x1a^v\xdfI$4o~\xca\xfdOV\xcd\xad\xfd\xc6{\xff\x00\xc1oOW\xd5\xee\xa3uu\xbe\x91[\xddikEe\xedc\x81|m\x9f_\xd2g\xe7n\x7f\xbf\xf4l\xfd\'\xd0\xae\xd5\x0f\xda#\xfe\xe2b\xff\x00\xdb\x7f\xf9\x9a_\xb4G\xfd\xc4\xc5\xff\x00\xb6\xcf\xfeM*R!\xd2\xf3\x1d\x88s\x00g\xa2\xc7\x06<\xfa\x8c\x05\xa4\x96\xb5\xbb\x9a]\xfc\xbf\xec\x7f\x84O\x9b\xd2s0k\x16d\x06\xb5\xae 3k\x83\xa4\x1d\xe3w\xb2\x7f\xd1~w\xbfg\xa5g\xf3wT\x89\xfbD\x7f\xdcL_\xfbo\xff\x003K\xf6\x88\xff\x00\xb8\x98\xbf\xf6\xd9\xff\x00\xc9\xa5Js\xd2Z\x1f\xb4G\xfd\xc4\xc5\xff\x00\xb6\xff\x00\xf34\xbfh\x8f\xfb\x89\x8b\xff\x00m\xff\x00\xe6iR\x9c\xf4\x96\x87\xed\x11\xff\x00q1\x7f\xed\xbf\xfc\xcd/\xda#\xfe\xe2b\xff\x00\xdb\x7f\xf9\x9aT\xa7=%\xa1\xfbD\x7f\xdcL_\xfbo\xff\x003K\xf6\x88\xff\x00\xb8\x98\xbf\xf6\xdf\xfef\x95)\xcfIh~\xd1\x1f\xf7\x13\x17\xfe\xdb\xff\x00\xcc\xd2\xfd\xa2?\xee&/\xfd\xb7\xff\x00\x99\xa5Js\xd2Z\x1f\xb4G\xfd\xc4\xc5\xff\x00\xb6\xff\x00\xf34\xbfh\x8f\xfb\x89\x8b\xff\x00m\x7f\xe6iR\x9c\xf4\x96\x87\xed\x11\xff\x00q1\x7f\xed\xbf\xfc\xcd/\xda#\xfe\xe2b\xff\x00\xdb\x7f\xf9\x9aT\xa7\xff\xd0\xf2\xe4\x92I9\nI$\x92R\x92I$\x94\xa4\x92N\x92\x96I?\x97s\xc0W\xd9\xf5\x7f\xaf\xd8\xcfR\xbe\x99\x98\xf6~\xfbq\xec#\xfc\xed\x89)\xcfI\x1f+\x0b3\r\xe2\xbc\xcc{q\x9eu\r\xb9\x8e\xac\x9f\x95\x81\xa8))d\x92I%)$\x92IJI$\x92R\x92I$\x94\xff\x00\xff\xd1\xf2\xe4\x92I9\nI$\x92R\x93\xa6N\x92\x94\xb7~\xac}U\xc9\xeb\xaf\xb3"\xc7\x1cn\x99\x8a\x7fY\xcb#q\xdcun634\xf5\xb2_\xff\x00m\xd2\xcf\xd2]\xfe\x0f\xd4\xc9\xc0\xc2\xc8\xea\x19\xb8\xf88\xc0\x1b\xf2\xacm5\x03\xc6\xe7\x9d\x8d\xdd\xcf\xb1\xbf\x9e\xbd\x87.\x9cn\x93\xd3\xf1z\x1e\x0b6\xe3c\x89.w\xd2|\x18u\xef\xd9\xf9\xd9\x16\xee\xb7\xff\x00Q\xa4T\xe7t\xdc\x0c\x1e\x9e\x05]\x1f\x1b\xd0-o\xe92>\x95\xee\x03\xe9:\xec\xad\xa1\xdf\xf6\xcf\xa3\x8f\xff\x00\x04\xad\xd5h\x0f/\xbe\xf75\xdc\xee\xd5\xce\x91\xf9\xc0\xbfv\xe5\n(\xb0Q\xea\xb7\x87\x9d\x8c\x00\xeaI\xfeJ\x1eEo\xaeX\xe2ds\xc7\x8f\xfd$\x12\xea\xbb\xa9\x0c\x9a\x1dE\x85\xb9\xb8\xef\xfax\xf71\xaf\xd3\xf3\xb7T\xfd\xf5\xb9q?[\xbe\xa6\xe0}\x9c\xf5^\x82\xd1X\x12\xec\x8c\x00I\x02>\x9b\xf1\xb7nsv\xfev>\xef\xf8\xaf\xf4Kz\xba\xdc\xd2\x7f4D\xee\xe4\x10\x11\xb3\xbdF\x07X\xd1\x00\xc1,\xe2t\xff\x00\xa2\x85\xaa\x9f!L\xb4\xfe\xb0\xe13\x0f\xa9\xd8+\x1bj\xb8\x0bX\xdf\xdd\xdd\xf4\xd9\xfd\x97\xac\xd4\xe4,\x92I$\xa5$\x92I)I$\x92J\x7f\xff\xd2\xf2\xe4\x92I9\nI$\x92R\x93\xa6N\x92\x9e\xbb\xfcV\xe2W\x91\xf5\xb6\xabl01(\xb6\xe0|\t\x03\x19\xae\xfe\xc7\xda7\xaf@\xeb\x18\xdb\xadu\x85\xcd\x05\x8d\x80\t\xf79\xad\xd3\xe8\xff\x00\xdf\x97\x9d\xff\x00\x8b<\xb1\x8f\xf5\xae\xaa\x8f\x19\x94\xdd\x8e5\x8fqo\xaf[\x7f\xb7e\rb\xf4~\xa5O\xafs2\xdc#`\r\x027\x02c\xf3\xbfs\xf9H\x14\x87?\x18\x86\x96\x02w\xc8\x06\x06\xbbA?\x9d\xfb\x89\xf2s\r\xc7\xd3\xf4\xf7X4hh\xe47\xe9;\xf9.r\x8b\x9c[y\xae\xa6E\xa0\x1a\xc3Z \x83\xf4]\xa7\xe7\xedW~\xce\xcb=&\xc1k\xd9\x04\x91\x00\x9d!\xdb\xb9INU\xd9\x0ce\x0eeLv\xea\xfd\xae.?D\x1fw\xba?\xab\xecT\xdbu\xaey\xafv\xe78\x97\xeb\'\xdc\x07\xfd\xf9h\xf5aV;}z[\x17<\x8fy\xecu\xfc\xd1\xfc\x95\x87NQ\xae\xf6\x81\x12\xf2\x06\xee ~p\x1f\xd6AO9\xf5\xbb\xfae3\xf4\x83\x08?\x82\xc1Z_X2\xfe\xd3\xd4\x1c\x01\xdc)\xf6\x07x\xf9\xac\xd4F\xc8Y$\x92EJI$\x92R\x92I$\x94\xff\x00\xff\xd3\xf2\xe4\x92I9\nI$\x92R\xe9&N\x92\x92\xe2\xe4\xdd\x89\x93NV;\xb6_\x8e\xf6\xdbS\xff\x00u\xec!\xf5\xbb\xfc\xe6\xafr\xe8\x9dK\x17\xad\xf4\xfaz\x96$\nr\t\xf5j\x994\xdd\xa7\xaf\x8a\xe8\xfd\xc7;u~\xdf\xd2Q\xe9\xd8\xbc!k\xfdY\xfa\xcf\xd4>\xad\xe7\xfd\xab\x12,\xaa\xc0\x1b\x95\x8a\xf9\xf4\xed`\xe3t}\x0bk\xdd\xfa\x0b\xdb\xfc\xd7\xfcU\x96\xd4\xf4\xa0\xfbm\xf8xe\xc6\xf76/\x9f\xa7\xdf\xcc\xac\xdb\xa1\xa4\x89\xdd\xe0 \xc8\xd7\xc7\xf3\x96^/\xd7\xbe\x83\xd4i\x1e\x9eQ\xc5\xb0\xfd*2b\xb7\x82{2\xef\xe6-g\xf5l\xff\x00\xac\xb1G+\xae\xe0\xb5\x85\xc7.\x96\x80\'K\x1b\x1f\xd9\xf7\x7f\xd4\xa0JRuk\xab\x7f\xa5\x8e\xe7\x90\x1f\xab\xeah\xd3R\xb8\xfe\xbb\xd4\xeb\xc5\xb5\xe6\x90\x01\x04\x00\x07\x04\x8f\xdd\xfb\x91:\xc7\xd6\xcc(?fw\xadq\x90\x0b8\x13\xfb\xcf\\\x86NU\xd9V\x9bnqs\x9d\xf7\x047Q(\xdc\xe2\xf79\xee\xe5\xc4\x93\xf1)\x92I9\x0b$\x9d2JRI\'IK$\x92I)\xff\xd4\xf2\xe4\x92I9\nI$\x92R\x93\xa6N\x92\x94\x92I$\xa5vM\x03\xc1:I)I$\x92JRI$\x92\x94\x99$\x92R\x92I$\x94\xa4\x92I%?\xff\xd5\xf3\x0fN\xcf\xdcw\xf9\xa7\xfb\x92\xf4\xec\xfd\xc7\x7f\x9aQ\xff\x00m\xf5\xaf\xfb\x9f\x93\xff\x00oY\xff\x00\x93K\xf6\xdfZ\xff\x00\xb9\xf9?\xf6\xf5\x9f\xf94mT\x83\xd3\xb3\xf7\x1d\xfei\xfe\xe4\xbd;?q\xdf\xe6\x9f\xeeG\xfd\xb7\xd6\xbf\xee~O\xfd\xbdg\xfeM/\xdb}g\xfe\xe7\xe4\xff\x00\xdb\xd6\x7f\xe4\xd2\xb5 \xf4\xec\xfd\xc7\x7f\x9a\x7f\xb9/N\xcf\xdcw\xf9\xa7\xfb\x91\xff\x00m\xf5\xaf\xfb\x9f\x93\xff\x00oY\xff\x00\x93K\xf6\xdfZ\xff\x00\xb9\xf9?\xf6\xf5\x9f\xf94\xadT\x83\xd3\xb3\xf7\x1d\xfei\xfe\xe4\xfe\x9d\x9f\xb8\xef\xf3O\xf7#~\xdb\xeb_\xf7?\'\xfe\xde\xb3\xff\x00&\x97\xed\xbe\xb3\xff\x00s\xf2\x7f\xed\xeb?\xf2iZ)\x0f\xa7g\xee;\xfc\xd3\xfd\xc9zv~\xe3\xbf\xcd?\xdc\x8d\xfbo\xac\xff\x00\xdc\xfc\x9f\xfbz\xcf\xfc\x9a_\xb6\xfa\xcf\xfd\xcf\xc9\xff\x00\xb7\xac\xff\x00\xc9\xa5j\xa4>\x9d\x9f\xb8\xef\xf3O\xf7%\xe9\xd9\xfb\x8e\xff\x004\xff\x00r7\xed\xbe\xb3\xff\x00s\xf2\x7f\xed\xeb?\xf2i~\xdb\xeb?\xf7?\'\xfe\xde\xb3\xff\x00&\x95\xaa\x90\xfav~\xe3\xbf\xcd?\xdc\x9b\xd3\xb3\xf7\x1d\xfeiG\xfd\xb7\xd6\x7f\xee~O\xfd\xbdg\xfeM/\xdb}k\xfe\xe7\xe4\xff\x00\xdb\xd6\x7f\xe4\xd2\xb5R\x0fN\xcf\xdcw\xf9\xa7\xfb\x92\xf4\xec\xfd\xc7\x7f\x9a\x7f\xb9\x1f\xf6\xdfY\xff\x00\xb9\xf9?\xf6\xf5\x9f\xf94\xbfm\xf5\x9f\xfb\x9f\x93\xff\x00oY\xff\x00\x93J\xd3H}+?q\xdf\xe6\x9f\xeeM\xe9\xd9\xfb\x8e\xff\x004\xff\x00r\xbdG\xd6>\xa5Sb\xcb,\xc8?\xbfe\xf9\x00\xfc?C\x91ST\x99\xf5\x9b\xa8\xb1\xad\x04\xb9\xe4r\xe3~T\xb8\xc7\xd2v\xcc\xa67\xfc\xc4\xadM\x0fJ\xcf\xdcw\xf9\xa7\xfb\x93zV~\xe3\xbf\xcd?\xdc\xb4_\xf5\x9b\xa8;l\x1744\x82\x7fX\xca;\xa0}\x17\xceW\xd1w\xf2\x15\x9c\xee\xbc\xe3E\x83\x175\xe2\xc0\x06\xc75\xf9a\xc4\x82\xc9\xdan\xca\xb2\xaf{}M\xfb\xeb\xfeE\x7f\xe9\x12\xb5?\xff\xd6\xf2\xa4\x92I%)$\x92IJI$\x92R\x92I$\x94\xa4\x92I%)$\x92IJI$\x92R\x92I$\x94\xa4\x92I%)$\x92IO\xff\xd9'}
exif_dict = piexif.load(photo['file'].info['exif'])
for k, v in exif_dict['Exif'].items():
    if type(v) == bytes:
        if '<' in v.decode():
            print (v)
            print (html.escape(v.decode()).encode('utf8'))
            exif_dict['Exif'][k] = html.escape(v.decode()).encode('utf8')
exif_bytes = piexif.dump(exif_dict)
photo['file'].save(photo['iofile'], "jpeg", exif=exif_bytes)
b'ASCII\x00\x00\x00Please, feel free to comment. Much appreciated.\n\n<a href="http://youtu.be/UmHoXqzy8GU" rel="nofollow">youtu.be/UmHoXqzy8GU</a>'
b'ASCII\x00\x00\x00Please, feel free to comment. Much appreciated.\n\n&lt;a href=&quot;http://youtu.be/UmHoXqzy8GU&quot; rel=&quot;nofollow&quot;&gt;youtu.be/UmHoXqzy8GU&lt;/a&gt;'
Image.open(photo['iofile'])._getexif()
{296: 2,
 34665: 330,
 270: 'Howling At The Moon (Sha-la-la)',
 271: 'NIKON CORPORATION',
 272: 'NIKON D3S',
 305: 'Adobe Photoshop CS5 Windows',
 274: 1,
 306: '2012:12:01 12:43:31',
 315: 'Urko Dorronsoro Sagasti',
 33432: 'Urko Dorronsoro Sagasti',
 282: (2400000, 10000),
 283: (2400000, 10000),
 36864: b'0221',
 37377: (8643856, 1000000),
 37378: (6918863, 1000000),
 36867: '2012:12:01 09:14:46',
 36868: '2012:12:01 09:14:46',
 37380: (0, 6),
 37381: (53, 10),
 37382: (501, 10),
 37383: 5,
 37384: 0,
 37385: 0,
 37386: (5000, 10),
 37510: b'ASCII\x00\x00\x00Please, feel free to comment. Much appreciated.\n\n&lt;a href=&quot;http://youtu.be/UmHoXqzy8GU&quot; rel=&quot;nofollow&quot;&gt;youtu.be/UmHoXqzy8GU&lt;/a&gt;',
 40961: 65535,
 40962: 1576,
 41990: 0,
 37520: '20',
 37521: '20',
 37522: '20',
 40963: 1120,
 41996: 0,
 41495: 2,
 41728: b'\x03',
 33434: (1, 400),
 33437: (11, 1),
 41729: b'\x01',
 34850: 1,
 41730: b'\x02\x00\x02\x00\x00\x01\x01\x02',
 41985: 0,
 34855: 400,
 41986: 1,
 40960: b'0100',
 41987: 0,
 41988: (1, 1),
 41989: 500,
 41991: 1,
 41992: 0,
 41993: 0,
 41994: 0}
piexif.load(exif_bytes)
{'0th': {270: b'Howling At The Moon (Sha-la-la)',
  271: b'NIKON CORPORATION',
  272: b'NIKON D3S',
  274: 1,
  282: (2400000, 10000),
  283: (2400000, 10000),
  296: 2,
  305: b'Adobe Photoshop CS5 Windows',
  306: b'2012:12:01 12:43:31',
  315: b'Urko Dorronsoro Sagasti',
  33432: b'Urko Dorronsoro Sagasti',
  34665: 330},
 'Exif': {33434: (1, 400),
  33437: (11, 1),
  34850: 1,
  34855: 400,
  36864: b'0221',
  36867: b'2012:12:01 09:14:46',
  36868: b'2012:12:01 09:14:46',
  37377: (8643856, 1000000),
  37378: (6918863, 1000000),
  37380: (0, 6),
  37381: (53, 10),
  37382: (501, 10),
  37383: 5,
  37384: 0,
  37385: 0,
  37386: (5000, 10),
  37510: b'ASCII\x00\x00\x00Please, feel free to comment. Much appreciated.\n\n&lt;a href=&quot;http://youtu.be/UmHoXqzy8GU&quot; rel=&quot;nofollow&quot;&gt;youtu.be/UmHoXqzy8GU&lt;/a&gt;',
  37520: b'20',
  37521: b'20',
  37522: b'20',
  40960: b'0100',
  40961: 65535,
  40962: 1576,
  40963: 1120,
  41495: 2,
  41728: b'\x03',
  41729: b'\x01',
  41730: b'\x02\x00\x02\x00\x00\x01\x01\x02',
  41985: 0,
  41986: 1,
  41987: 0,
  41988: (1, 1),
  41989: 500,
  41990: 0,
  41991: 1,
  41992: 0,
  41993: 0,
  41994: 0,
  41996: 0},
 'GPS': {},
 'Interop': {},
 '1st': {259: 6, 282: (72, 1), 283: (72, 1), 296: 2, 513: 1180, 514: 2643},
 'thumbnail': b'\xff\xd8\xff\xdb\x00\x84\x00\x0c\x08\x08\x08\t\x08\x0c\t\t\x0c\x11\x0b\n\x0b\x11\x15\x0f\x0c\x0c\x0f\x15\x18\x13\x13\x15\x13\x13\x18\x11\x0c\x0c\x0c\x0c\x0c\x0c\x11\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x01\r\x0b\x0b\r\x0e\r\x10\x0e\x0e\x10\x14\x0e\x0e\x0e\x14\x14\x0e\x0e\x0e\x0e\x14\x11\x0c\x0c\x0c\x0c\x0c\x11\x11\x0c\x0c\x0c\x0c\x0c\x0c\x11\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xff\xc0\x00\x11\x08\x00r\x00\xa0\x03\x01"\x00\x02\x11\x01\x03\x11\x01\xff\xdd\x00\x04\x00\n\xff\xc4\x01?\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\x00\x01\x02\x04\x05\x06\x07\x08\t\n\x0b\x01\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x10\x00\x01\x04\x01\x03\x02\x04\x02\x05\x07\x06\x08\x05\x03\x0c3\x01\x00\x02\x11\x03\x04!\x121\x05AQa\x13"q\x812\x06\x14\x91\xa1\xb1B#$\x15R\xc1b34r\x82\xd1C\x07%\x92S\xf0\xe1\xf1cs5\x16\xa2\xb2\x83&D\x93TdE\xc2\xa3t6\x17\xd2U\xe2e\xf2\xb3\x84\xc3\xd3u\xe3\xf3F\'\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf67GWgw\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x11\x00\x02\x02\x01\x02\x04\x04\x03\x04\x05\x06\x07\x07\x06\x055\x01\x00\x02\x11\x03!1\x12\x04AQaq"\x13\x052\x81\x91\x14\xa1\xb1B#\xc1R\xd1\xf03$b\xe1r\x82\x92CS\x15cs4\xf1%\x06\x16\xa2\xb2\x83\x07&5\xc2\xd2D\x93T\xa3\x17dEU6te\xe2\xf2\xb3\x84\xc3\xd3u\xe3\xf3F\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf6\'7GWgw\x87\x97\xa7\xb7\xc7\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xf3\x9cn\x89\x9d\x95K-\xc7\xf4\x9f\xea\x90\xd6W\xea\xb1\xb6\x12\xe7:\xa67\xd3{\xda\xed\xee{=\x8c\xff\x00\t\xfe\r\x12\xbf\xab}^\xd7T\xca\xabe\x8f\xb8\x80\xc6\xb6\xda\xf5$\xed\xda\xdf\xd2m{\x99\xfe\x1bg\xf4\x7f\xf0\xfe\x9a\x87\xed\x11\xff\x00q1\x7f\xed\xbf\xfc\xcd/\xda#\xfe\xe2c\x7f\xdbg\xff\x00&\x8d)\x80\xe9\x19\x7fdfY56\xa7\xb84\x03c7\x82\xe2\x19^\xea\xb7z\x8d\xf5=\xef\xaf\xdb\xfc\xd5V[\xfc\xda#\xfa\x0ekMd>\x87Us\x9a\xc6\\.`o\xb89\xfb\xdf\xbd\xcc\xb2\xba\xd8\xca\xdc\xfb,\xb2\xbd\x9b?\xe3j\xde\xdf\xb4G\xfd\xc4\xc5\xff\x00\xb6\xff\x00\xf34\xbfh\x8f\xfb\x89\x8b\xff\x00m\xff\x00\xe6iR\x99]\xf5\x7f\xa9T\xd78\xfa.k\x1a^v\xdfI$4o~\xca\xfdOV\xcd\xad\xfd\xc6{\xff\x00\xc1oOW\xd5\xee\xa3uu\xbe\x91[\xddikEe\xedc\x81|m\x9f_\xd2g\xe7n\x7f\xbf\xf4l\xfd\'\xd0\xae\xd5\x0f\xda#\xfe\xe2b\xff\x00\xdb\x7f\xf9\x9a_\xb4G\xfd\xc4\xc5\xff\x00\xb6\xcf\xfeM*R!\xd2\xf3\x1d\x88s\x00g\xa2\xc7\x06<\xfa\x8c\x05\xa4\x96\xb5\xbb\x9a]\xfc\xbf\xec\x7f\x84O\x9b\xd2s0k\x16d\x06\xb5\xae 3k\x83\xa4\x1d\xe3w\xb2\x7f\xd1~w\xbfg\xa5g\xf3wT\x89\xfbD\x7f\xdcL_\xfbo\xff\x003K\xf6\x88\xff\x00\xb8\x98\xbf\xf6\xd9\xff\x00\xc9\xa5Js\xd2Z\x1f\xb4G\xfd\xc4\xc5\xff\x00\xb6\xff\x00\xf34\xbfh\x8f\xfb\x89\x8b\xff\x00m\xff\x00\xe6iR\x9c\xf4\x96\x87\xed\x11\xff\x00q1\x7f\xed\xbf\xfc\xcd/\xda#\xfe\xe2b\xff\x00\xdb\x7f\xf9\x9aT\xa7=%\xa1\xfbD\x7f\xdcL_\xfbo\xff\x003K\xf6\x88\xff\x00\xb8\x98\xbf\xf6\xdf\xfef\x95)\xcfIh~\xd1\x1f\xf7\x13\x17\xfe\xdb\xff\x00\xcc\xd2\xfd\xa2?\xee&/\xfd\xb7\xff\x00\x99\xa5Js\xd2Z\x1f\xb4G\xfd\xc4\xc5\xff\x00\xb6\xff\x00\xf34\xbfh\x8f\xfb\x89\x8b\xff\x00m\x7f\xe6iR\x9c\xf4\x96\x87\xed\x11\xff\x00q1\x7f\xed\xbf\xfc\xcd/\xda#\xfe\xe2b\xff\x00\xdb\x7f\xf9\x9aT\xa7\xff\xd0\xf2\xe4\x92I9\nI$\x92R\x92I$\x94\xa4\x92N\x92\x96I?\x97s\xc0W\xd9\xf5\x7f\xaf\xd8\xcfR\xbe\x99\x98\xf6~\xfbq\xec#\xfc\xed\x89)\xcfI\x1f+\x0b3\r\xe2\xbc\xcc{q\x9eu\r\xb9\x8e\xac\x9f\x95\x81\xa8))d\x92I%)$\x92IJI$\x92R\x92I$\x94\xff\x00\xff\xd1\xf2\xe4\x92I9\nI$\x92R\x93\xa6N\x92\x94\xb7~\xac}U\xc9\xeb\xaf\xb3"\xc7\x1cn\x99\x8a\x7fY\xcb#q\xdcun634\xf5\xb2_\xff\x00m\xd2\xcf\xd2]\xfe\x0f\xd4\xc9\xc0\xc2\xc8\xea\x19\xb8\xf88\xc0\x1b\xf2\xacm5\x03\xc6\xe7\x9d\x8d\xdd\xcf\xb1\xbf\x9e\xbd\x87.\x9cn\x93\xd3\xf1z\x1e\x0b6\xe3c\x89.w\xd2|\x18u\xef\xd9\xf9\xd9\x16\xee\xb7\xff\x00Q\xa4T\xe7t\xdc\x0c\x1e\x9e\x05]\x1f\x1b\xd0-o\xe92>\x95\xee\x03\xe9:\xec\xad\xa1\xdf\xf6\xcf\xa3\x8f\xff\x00\x04\xad\xd5h\x0f/\xbe\xf75\xdc\xee\xd5\xce\x91\xf9\xc0\xbfv\xe5\n(\xb0Q\xea\xb7\x87\x9d\x8c\x00\xeaI\xfeJ\x1eEo\xaeX\xe2ds\xc7\x8f\xfd$\x12\xea\xbb\xa9\x0c\x9a\x1dE\x85\xb9\xb8\xef\xfax\xf71\xaf\xd3\xf3\xb7T\xfd\xf5\xb9q?[\xbe\xa6\xe0}\x9c\xf5^\x82\xd1X\x12\xec\x8c\x00I\x02>\x9b\xf1\xb7nsv\xfev>\xef\xf8\xaf\xf4Kz\xba\xdc\xd2\x7f4D\xee\xe4\x10\x11\xb3\xbdF\x07X\xd1\x00\xc1,\xe2t\xff\x00\xa2\x85\xaa\x9f!L\xb4\xfe\xb0\xe13\x0f\xa9\xd8+\x1bj\xb8\x0bX\xdf\xdd\xdd\xf4\xd9\xfd\x97\xac\xd4\xe4,\x92I$\xa5$\x92I)I$\x92J\x7f\xff\xd2\xf2\xe4\x92I9\nI$\x92R\x93\xa6N\x92\x9e\xbb\xfcV\xe2W\x91\xf5\xb6\xabl01(\xb6\xe0|\t\x03\x19\xae\xfe\xc7\xda7\xaf@\xeb\x18\xdb\xadu\x85\xcd\x05\x8d\x80\t\xf79\xad\xd3\xe8\xff\x00\xdf\x97\x9d\xff\x00\x8b<\xb1\x8f\xf5\xae\xaa\x8f\x19\x94\xdd\x8e5\x8fqo\xaf[\x7f\xb7e\rb\xf4~\xa5O\xafs2\xdc#`\r\x027\x02c\xf3\xbfs\xf9H\x14\x87?\x18\x86\x96\x02w\xc8\x06\x06\xbbA?\x9d\xfb\x89\xf2s\r\xc7\xd3\xf4\xf7X4hh\xe47\xe9;\xf9.r\x8b\x9c[y\xae\xa6E\xa0\x1a\xc3Z \x83\xf4]\xa7\xe7\xedW~\xce\xcb=&\xc1k\xd9\x04\x91\x00\x9d!\xdb\xb9INU\xd9\x0ce\x0eeLv\xea\xfd\xae.?D\x1fw\xba?\xab\xecT\xdbu\xaey\xafv\xe78\x97\xeb\'\xdc\x07\xfd\xf9h\xf5aV;}z[\x17<\x8fy\xecu\xfc\xd1\xfc\x95\x87NQ\xae\xf6\x81\x12\xf2\x06\xee ~p\x1f\xd6AO9\xf5\xbb\xfae3\xf4\x83\x08?\x82\xc1Z_X2\xfe\xd3\xd4\x1c\x01\xdc)\xf6\x07x\xf9\xac\xd4F\xc8Y$\x92EJI$\x92R\x92I$\x94\xff\x00\xff\xd3\xf2\xe4\x92I9\nI$\x92R\xe9&N\x92\x92\xe2\xe4\xdd\x89\x93NV;\xb6_\x8e\xf6\xdbS\xff\x00u\xec!\xf5\xbb\xfc\xe6\xafr\xe8\x9dK\x17\xad\xf4\xfaz\x96$\nr\t\xf5j\x994\xdd\xa7\xaf\x8a\xe8\xfd\xc7;u~\xdf\xd2Q\xe9\xd8\xbc!k\xfdY\xfa\xcf\xd4>\xad\xe7\xfd\xab\x12,\xaa\xc0\x1b\x95\x8a\xf9\xf4\xed`\xe3t}\x0bk\xdd\xfa\x0b\xdb\xfc\xd7\xfcU\x96\xd4\xf4\xa0\xfbm\xf8xe\xc6\xf76/\x9f\xa7\xdf\xcc\xac\xdb\xa1\xa4\x89\xdd\xe0 \xc8\xd7\xc7\xf3\x96^/\xd7\xbe\x83\xd4i\x1e\x9eQ\xc5\xb0\xfd*2b\xb7\x82{2\xef\xe6-g\xf5l\xff\x00\xac\xb1G+\xae\xe0\xb5\x85\xc7.\x96\x80\'K\x1b\x1f\xd9\xf7\x7f\xd4\xa0JRuk\xab\x7f\xa5\x8e\xe7\x90\x1f\xab\xeah\xd3R\xb8\xfe\xbb\xd4\xeb\xc5\xb5\xe6\x90\x01\x04\x00\x07\x04\x8f\xdd\xfb\x91:\xc7\xd6\xcc(?fw\xadq\x90\x0b8\x13\xfb\xcf\\\x86NU\xd9V\x9bnqs\x9d\xf7\x047Q(\xdc\xe2\xf79\xee\xe5\xc4\x93\xf1)\x92I9\x0b$\x9d2JRI\'IK$\x92I)\xff\xd4\xf2\xe4\x92I9\nI$\x92R\x93\xa6N\x92\x94\x92I$\xa5vM\x03\xc1:I)I$\x92JRI$\x92\x94\x99$\x92R\x92I$\x94\xa4\x92I%?\xff\xd5\xf3\x0fN\xcf\xdcw\xf9\xa7\xfb\x92\xf4\xec\xfd\xc7\x7f\x9aQ\xff\x00m\xf5\xaf\xfb\x9f\x93\xff\x00oY\xff\x00\x93K\xf6\xdfZ\xff\x00\xb9\xf9?\xf6\xf5\x9f\xf94mT\x83\xd3\xb3\xf7\x1d\xfei\xfe\xe4\xbd;?q\xdf\xe6\x9f\xeeG\xfd\xb7\xd6\xbf\xee~O\xfd\xbdg\xfeM/\xdb}g\xfe\xe7\xe4\xff\x00\xdb\xd6\x7f\xe4\xd2\xb5 \xf4\xec\xfd\xc7\x7f\x9a\x7f\xb9/N\xcf\xdcw\xf9\xa7\xfb\x91\xff\x00m\xf5\xaf\xfb\x9f\x93\xff\x00oY\xff\x00\x93K\xf6\xdfZ\xff\x00\xb9\xf9?\xf6\xf5\x9f\xf94\xadT\x83\xd3\xb3\xf7\x1d\xfei\xfe\xe4\xfe\x9d\x9f\xb8\xef\xf3O\xf7#~\xdb\xeb_\xf7?\'\xfe\xde\xb3\xff\x00&\x97\xed\xbe\xb3\xff\x00s\xf2\x7f\xed\xeb?\xf2iZ)\x0f\xa7g\xee;\xfc\xd3\xfd\xc9zv~\xe3\xbf\xcd?\xdc\x8d\xfbo\xac\xff\x00\xdc\xfc\x9f\xfbz\xcf\xfc\x9a_\xb6\xfa\xcf\xfd\xcf\xc9\xff\x00\xb7\xac\xff\x00\xc9\xa5j\xa4>\x9d\x9f\xb8\xef\xf3O\xf7%\xe9\xd9\xfb\x8e\xff\x004\xff\x00r7\xed\xbe\xb3\xff\x00s\xf2\x7f\xed\xeb?\xf2i~\xdb\xeb?\xf7?\'\xfe\xde\xb3\xff\x00&\x95\xaa\x90\xfav~\xe3\xbf\xcd?\xdc\x9b\xd3\xb3\xf7\x1d\xfeiG\xfd\xb7\xd6\x7f\xee~O\xfd\xbdg\xfeM/\xdb}k\xfe\xe7\xe4\xff\x00\xdb\xd6\x7f\xe4\xd2\xb5R\x0fN\xcf\xdcw\xf9\xa7\xfb\x92\xf4\xec\xfd\xc7\x7f\x9a\x7f\xb9\x1f\xf6\xdfY\xff\x00\xb9\xf9?\xf6\xf5\x9f\xf94\xbfm\xf5\x9f\xfb\x9f\x93\xff\x00oY\xff\x00\x93J\xd3H}+?q\xdf\xe6\x9f\xeeM\xe9\xd9\xfb\x8e\xff\x004\xff\x00r\xbdG\xd6>\xa5Sb\xcb,\xc8?\xbfe\xf9\x00\xfc?C\x91ST\x99\xf5\x9b\xa8\xb1\xad\x04\xb9\xe4r\xe3~T\xb8\xc7\xd2v\xcc\xa67\xfc\xc4\xadM\x0fJ\xcf\xdcw\xf9\xa7\xfb\x93zV~\xe3\xbf\xcd?\xdc\xb4_\xf5\x9b\xa8;l\x1744\x82\x7fX\xca;\xa0}\x17\xceW\xd1w\xf2\x15\x9c\xee\xbc\xe3E\x83\x175\xe2\xc0\x06\xc75\xf9a\xc4\x82\xc9\xdan\xca\xb2\xaf{}M\xfb\xeb\xfeE\x7f\xe9\x12\xb5?\xff\xd6\xf2\xa4\x92I%)$\x92IJI$\x92R\x92I$\x94\xa4\x92I%)$\x92IJI$\x92R\x92I$\x94\xa4\x92I%)$\x92IO\xff\xd9'}
exif_bytes =  b'\xff' *255 + exif_bytes
fp = io.BytesIO()
Image.open(photo['file']).save(fp, "jpeg", exif=exif_bytes)
im = Image.open(fp)
photo_bytes2 = photo['file'].read()
len(photo_bytes2)
0
exif_test = photo_bytes[0:2] + b'\xff' *255 + photo_bytes[2:]
photo['file'] = io.BytesIO(urllib.request.urlopen(photo['url']).read())
with open('exifpad_test.jpg', 'wb') as fp:
    fp.write(exif_test)
Image.open('exifpad_test.jpg')