Small Basic Sample: Flickr Photo ID
This article shows how to use photo id for Flickr object in Microsoft Small Basic programming language.
Photo ID
Flickr.GetPictureOfMoment()
or Flickr.GetRandomPicture()
return following format of URLs.
https://farm{farm-id}.static.flickr.com/{server-id}/{photo-id}_{secret}.jpg
But the URL above shows only photo image. Other information such as the author and copyright can be obtain with following format.
http://flickr.com/photo.gne?id={photo-id}
Following sample code is to get photo ID from the URL provided by the Flickr
object.
Sub Url2Id
' param url
' return id - photo id
p = Text.GetIndexOf(url, "_") - 1
id = ""
c = Text.GetSubText(url, p, 1)
While c <> "/"
id = Text.Append(c, id)
p = p - 1
c = Text.GetSubText(url, p, 1)
EndWhile
EndSub
Base 58 Photo ID
Short URL is short version of URL that may be useful for using in SNS.
https://flic.kr/p/{base58-photo-id}
Following sample code is for base 58 encoding.
Sub Base58Encode
' param id - photo id
' return encoded - base58 photo id
alphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
base = Text.GetLength(alphabet)
encoded = ""
While 0 < id
mod = Math.Remainder(id, base)
encoded = Text.Append(Text.GetSubText(alphabet, mod + 1, 1), encoded)
id = Math.Floor(id / base)
EndWhile
EndSub
Following sample code is for base 58 decoding.
Sub Base58Decode
' param encoded - base58 photo id
' return id - photo id
alphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
base = Text.GetLength(alphabet)
len = Text.GetLength(encoded)
id = 0
place = 1
For p = len To 1 Step -1
id = id + place * (Text.GetIndexOf(alphabet,Text.GetSubText(encoded, p, 1)) - 1)
place = place * base
EndFor
EndSub
Sample Programs
- Flickr Sample 0.5 - shows Flickr photo and original URL
- Flickr Photo ID Sample - shows Flickr URL, original URL, and short URL
Screen Shot
Following screen shot is by the program Flickr Sample 0.5 above.
Credit
Original photo by Stéphane Gérard (CC BY-NC-SA 2.0)
See Also
Additional Resources
- Flickr | The App Garden - Photo Source URLs / Web Page URLs / Short URLs
- Bram.us | How to find the original Flickr Photo URL and User from a Static Flickr Image URL/Permalink (My priceless Flickr Tip)