Skip to content

Vonng/go-itunes-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

iTunes Search API for Golang

go-itunes-search is a golang wrapper for iTunes Search API , also provides a binary tool for quick search.

Reference

See iTunes Search API Document for more details.

Install

SDK:

go get github.com/Vonng/go-itunes-search

Binary Util

cd $GOPATH/src/github.com/Vonng/go-itunes-search/bin && make install

Binary Util Usage

Simple & handy tools for iTunes App Search & Lookup, source code : bin/itunes.go

Usage:

Usage of itunes: -b string	bundleID for lookup eg:com.tencent.xin -c string	restrict to country. default:CN (default "CN") -d	fetch extra details. default:disabled -i string	id for lookup. eg:414478124 -l	show result in list format -n int	number of result size. 1~200,default:50 (default 10) -s string	searching keyword eg:HelloWorld 

Options

  • Available language code could refer to ISO 3166-1 alpha-2 , Specify by -c

  • -d options provides extra info, requires an extra RoundTrip to corresponding iTunes Store.

  • Actually you can fetch basic entry & extra info from two different country.

  • -n will limit result size, default 50, range from 1 to 200. but fixed to 1 when provide id or bundleID

  • -l will tabulate result with iTunesID, BundleID, AppName, Version only, only available on search

  • -s provides searching keywords, you may refer iTunes Search API Document for more detail

  • -i means lookup iTunes entity by iTunesID, which is a serial like 414478124ใ€‚

  • -d means lookup iTunes entity by BundleID, which looks like a domain name: com.MaoTian.XiXiGame

Example

Search keywords

# search keyword `credit` in US Store, return 10 records, list format $ itunes -s hello -c US -n 10 -l 10 result returned. +-----------+--------------------------------------+--------------------------------+-------------+ | ITUNESID | BUNDLEID | NAME | VER | +-----------+--------------------------------------+--------------------------------+-------------+ | 508231856 | com.zello.client.main | Zello Walkie Talkie | 3.40 | | 582654048 | com.sega.sonicdash | Sonic Dash | 3.7.3 | | 293778748 | com.namconetworks.pacmanlite | PAC-MAN | 6.4.4 | | 443904275 | jp.naver.line | LINE | 7.7.0 | | 518908100 | com.sdeurope.itunes.helloKittyCafeUS | Hello Kitty Cafe! | 1.7.2 | | 318447346 | com.HalcyonInnovation.HelloVino | Hello Vino: Wine Assistant | 5.0 | | 949737354 | com.budgestudios.HelloKittyNailSalon | Hello Kitty Nail Salon | 1.1 | | 505780419 | com.sanrio.HelloKittyWorld | Hello Kitty World - Fun Park | 3.11.0 | | | | Game | | | 969589921 | com.budgestudios.HelloKittyLunchBox | Hello Kitty Lunchbox โ€“ Food | 1.3 | | | | Maker | | | 690046600 | com.blackberry.bbm1 | BBM | 300.0.15.81 | +-----------+--------------------------------------+--------------------------------+-------------+ 

Lookup App by iTunes Track ID (ID)

# lookup by iTunesID 414478124 in CHINESE store ,show detail itunes -i 414478124 -c JP -d 
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” โ”ƒ [software] 414478124 com.tencent.xin ๅพฎไฟก 6.5.13 โ”ƒ https://itunes.apple.com/cn/app/%E5%BE%AE%E4%BF%A1/id414478124?mt=8&uo=4 โ”ƒ http://is2.mzstatic.com/image/thumb/Purple128/v4/db/c6/be/dbc6beea-e606-8548-9017-d2cfa3e6c300/source/512x512bb.jpg โ”ƒ Price: 0 CNY โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Provider: โ”ƒ	614694882 WeChat https://itunes.apple.com/cn/developer/wechat/id614694882?uo=4 โ”ƒ	Tencent Technology (Shenzhen) Company Limited ยฉ Tencent Inc. http://weixin.qq.com โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Genre: โ”ƒ	6005 [6005 6007] โ”ƒ	Social Networking [็คพไบค ๆ•ˆ็އ] โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Icon60 : http://is2.mzstatic.com/image/thumb/Purple128/v4/db/c6/be/dbc6beea-e606-8548-9017-d2cfa3e6c300/source/60x60bb.jpg โ”ƒ Icon100: http://is2.mzstatic.com/image/thumb/Purple128/v4/db/c6/be/dbc6beea-e606-8548-9017-d2cfa3e6c300/source/100x100bb.jpg โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Environ: โ”ƒ	System : 8.0 โ”ƒ	Features : [iosUniversal] โ”ƒ	Devices : [iPad23G-iPad23G iPad2Wifi-iPad2Wifi iPad611-iPad611 iPad612-iPad612 iPad71-iPad71 iPad72-iPad72 iPad73-iPad73 iPad74-iPad74 iPadAir-iPadAir iPadAir2-iPadAir2 iPadAir2Cellular-iPadAir2Cellular iPadAirCellular-iPadAirCellular iPadFourthGen-iPadFourthGen iPadFourthGen4G-iPadFourthGen4G iPadMini-iPadMini iPadMini3-iPadMini3 iPadMini3Cellular-iPadMini3Cellular iPadMini4-iPadMini4 iPadMini4Cellular-iPadMini4Cellular iPadMini4G-iPadMini4G iPadMiniRetina-iPadMiniRetina iPadMiniRetinaCellular-iPadMiniRetinaCellular iPadPro-iPadPro iPadPro97-iPadPro97 iPadPro97Cellular-iPadPro97Cellular iPadProCellular-iPadProCellular iPadThirdGen-iPadThirdGen iPadThirdGen4G-iPadThirdGen4G iPhone4S-iPhone4S iPhone5-iPhone5 iPhone5c-iPhone5c iPhone5s-iPhone5s iPhone6-iPhone6 iPhone6Plus-iPhone6Plus iPhone6s-iPhone6s iPhone6sPlus-iPhone6sPlus iPhone7-iPhone7 iPhone7Plus-iPhone7Plus iPhoneSE-iPhoneSE iPodTouchFifthGen-iPodTouchFifthGen iPodTouchSixthGen-iPodTouchSixthGen] โ”ƒ	Languages: [AR DE EN ES FR HE HI ID IT JA KO MS PL PT RU TH TR VI ZH ZH ZH] โ”ƒ	Platforms: [iPad iPhone iPod iWatch] โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Rating : 12+ โ”ƒ Reasons: [ๅถๅฐ”/่ฝปๅพฎ็š„่‰ฒๆƒ…ๅ†…ๅฎนๆˆ–่ฃธ้œฒ] โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Size: 207158272 VppDevice: true GameCenter:false โ”ƒ Rating(Current) : 4 / 2435 โ”ƒ Rating(Historic) : 4 / 818418 โ”ƒ Sibling Apps : [] โ”ƒ Related Apps : [] โ”—โ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ Screenshots:	http://a1.mzstatic.com/us/r30/Purple128/v4/e1/e4/e2/e1e4e2b0-db07-266b-7d81-b3b3486b473d/screen696x696.jpeg	http://a2.mzstatic.com/us/r30/Purple118/v4/c6/38/4a/c6384adf-0f65-79a8-3862-791404cbef28/screen696x696.jpeg	http://a2.mzstatic.com/us/r30/Purple128/v4/d8/56/af/d856afcd-e9cc-9936-d4f8-cd62e6d1c967/sc1024x768.jpeg	http://a3.mzstatic.com/us/r30/Purple118/v4/90/54/7d/90547d63-3c8b-e788-9ca9-2528a7aa6ed1/screen390x390.jpeg	http://a3.mzstatic.com/us/r30/Purple118/v4/c7/7c/27/c77c278b-385c-0208-158e-e7baf2c66031/screen696x696.jpeg	http://a3.mzstatic.com/us/r30/Purple118/v4/e7/ec/75/e7ec75b9-f6da-5083-d923-27809ddd90c8/screen696x696.jpeg	http://a3.mzstatic.com/us/r30/Purple118/v4/eb/bc/34/ebbc346f-033b-1b0b-0381-2f0d97709522/screen390x390.jpeg	http://a3.mzstatic.com/us/r30/Purple128/v4/33/e2/5f/33e25f99-bca3-1747-db6b-378912b45f0c/sc1024x768.jpeg	http://a4.mzstatic.com/us/r30/Purple118/v4/57/81/b9/5781b924-e6e0-02f2-1cbb-98afdd5e0c06/screen390x390.jpeg	http://a4.mzstatic.com/us/r30/Purple118/v4/db/85/fc/db85fc17-dd73-b461-7430-33b501995aef/sc1024x768.jpeg	http://a5.mzstatic.com/us/r30/Purple128/v4/02/9f/17/029f175c-7a83-5b09-9593-07deab91fd77/screen696x696.jpeg	http://a5.mzstatic.com/us/r30/Purple128/v4/03/84/da/0384da46-9b4e-8258-b80d-e618d45d565a/screen390x390.jpeg โ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ Purchase:	1:ยฅ1.00:ๅŒๆ‹ผไน–ๅทง	2:ยฅ6.00:้‚“่ถ…	3:ยฅ6.00:้‡ŽๅŽŸๆ–ฐไน‹ๅŠฉ	4:ยฅ6.00:ๅฐS	5:ยฅ6.00:Hello Kitty	6:ยฅ6.00:Angelababy	7:ยฅ6.00:ๅ“†ๅ•ฆAๆขฆ	8:ยฅ6.00:ๆŽๅ…‰ๆด™	9:ยฅ6.00:ๅŒ้‡ๆ€งๆ ผ็š„ๅ–ตๅฐ็พŽ	10:ยฅ6.00:็”œ็”œ็งๆˆฟ็Œซ โ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ Reviews: [ [ "ๅ†ฏ---YQ", "5ๆ˜Ÿ", "ไธ็Ÿฅๆ€Ž็š„ๅฐฑๆฒกๆœ‰ไบ†", "่Šๅคฉๅ‘้€ๅ›พ็‰‡็š„ๆ—ถๅ€™้€‰ๆ‹ฉๅŽŸๅ›พ็š„่ฏไธ่ƒฝๆ˜พ็คบๅ›พ็‰‡็š„ๅคงๅฐ๏ผŒไปฅๅ‰่ฟ˜ๆœ‰็š„็Žฐๅœจๅ่€Œไธ่งไบ†่ฟ™ไธชๅŠŸ่ƒฝ๏ผŒไธชไบบ่ง‰ๅพ—่ฟ™ๆ ทไธๆ˜ฏๅพˆๆ–นไพฟ๏ผŒ่€Œไธ”ๆœ‹ๅ‹ๅœˆๆœ‰ๆ—ถๅ€™่ฟ˜ไผšๅŽ‹็ผฉๅ›พ็‰‡๏ผŒๅ‘ๅ‡บๆฅ็š„้ƒฝ็ณŠๆމไบ†๏ผŒๅซไบบๅฎถๆ€Žไนˆๆ„‰ๅฟซ็š„ๅˆ†ไบซ็”Ÿๆดป๏ผŸ๏ผŸ" ], [ "่ฟ™่พนไผšไธไผšๆœ‰ๆฐดๅ†›", "4ๆ˜Ÿ", "่ฏดไธชๅฐ็จ‹ๅบ็š„้—ฎ้ข˜๏ผŒๅธŒๆœ›่ƒฝ่ขซ็œ‹ๅˆฐ", "ๅฐ็จ‹ๅบๆœ‰ไธ€ไธช้—ฎ้ข˜๏ผŒๅฐฑๆ˜ฏๆœ‰ไธ€ไธชๆ˜พ็คบๅœจ่Šๅคฉ้กถ้ƒจ็š„ๅŠŸ่ƒฝใ€‚ไฝ†ๆ˜ฏๅช่ฆๆˆ‘ๅŽๅฐๅ…ณ้—ญๅพฎไฟก๏ผŒๆˆ–่€…้€€ๅ‡บ็™ปๅฝ•๏ผŒๅ†้‡ๆ–ฐๆ‰“ๅผ€๏ผŒๅŽŸๆฅ่ฎพ็ฝฎๅœจ่Šๅคฉ้กถ้ƒจ็š„ๅฐ็จ‹ๅบๅฐฑๆฒกไบ†โ€ฆ้œ€่ฆ้‡ๆ–ฐ่ฎพ็ฝฎ๏ผŒๆˆ‘่ง‰ๅพ—ๅพˆๅฅ‡ๆ€ชๅ•Š๏ผŒๅ› ไธบๅฆ‚ๆžœไฝ ่ฆ่ฎพ็ฝฎ็ฝฎ้กถ๏ผŒ่‚ฏๅฎšๆ˜ฏไฝ ไฝฟ็”จ็އ้žๅธธ้ซ˜็š„โ€ฆ้‚ฃไธบไป€ไนˆ้‡ๆ–ฐๆ‰“ๅผ€ๅฐฑๅˆๆฒกไบ†โ€ฆ็›ฎๅ‰ๆƒ…ๅ†ตๅบ”่ฏฅๅซไธดๆ—ถ็ฝฎ้กถ๏ฝžๅ› ไธบไป–็š„ๅ…ณ้—ญๅนถไธๆ˜ฏๆˆ‘ไธป่ง‚ๆŽงๅˆถ็š„๏ผŒๆœ‰ๆ—ถๅ€™้—ช้€€ไธ€ไธ‹๏ผŒไนŸๆฒกไบ†๏ผŒๆ“ไฝœไฝ“้ชŒไธŠๅฐฑๅพˆ็ƒฆไบ†๏ผŒ้‚ฃๆˆ‘ๅฐฑไธไผšๅŽป็”จๅฐ็จ‹ๅบ็ฝฎ้กถ่ฟ™ไธชๅŠŸ่ƒฝ" ], [ "ๆผณๆตฆๅฐ่”ก", "5ๆ˜Ÿ", "ๅธŒๆœ›่ƒฝๆ”น่ฟ›ๆ”ถ่—็š„ๆŸไบ›ๅŠŸ่ƒฝ", "ๅœจๆ”ถ่—้‡Œ้ขไธ่ƒฝไธ‹่ฝฝMP3ๆ–‡ไปถ๏ผŒๆœ‰ไธ€ไธช็‚นๆญคไธ‹่ฝฝ็š„ๆŒ‰้’ฎไฝ†ๆ‰“ไธๅผ€๏ผŒๆœ‰ๆ—ถๅ€™่ฆๆๅ–ไธ€ไบ›ๆ”ถ่—้‡Œ็š„ๆ–‡ไปถ้ƒฝๆฒกๅŠžๆณ•ไธ‹่ฝฝๅพˆไธๆ–นไพฟ๏ผŒๅธŒๆœ›่ฟ™ไธช้—ฎ้ข˜่ƒฝๅฐฝๅฟซๅพ—ๅˆฐ่งฃๅ†ณ่ฐข่ฐข" ] ] โ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ Description: ๅพฎไฟกๆ˜ฏไธ€ๆฌพๅ…จๆ–นไฝ็š„ๆ‰‹ๆœบ้€š่ฎฏๅบ”็”จ๏ผŒๅธฎๅŠฉไฝ ่ฝปๆพ่ฟžๆŽฅๅ…จ็ƒๅฅฝๅ‹ใ€‚ๅพฎไฟกๅฏไปฅ(้€š ่ฟ‡SMS/MMS็ฝ‘็ปœ)ๅ‘้€็Ÿญไฟกใ€่ฟ›่กŒ่ง†้ข‘่Šๅคฉใ€ไธŽๅฅฝๅ‹ไธ€่ตท็Žฉๆธธๆˆ๏ผŒไปฅๅŠๅˆ†ไบซ่‡ชๅทฑ็š„ ็”Ÿๆดปๅˆฐๆœ‹ๅ‹ๅœˆ๏ผŒ่ฎฉไฝ ๆ„Ÿๅ—่€ณ็›ฎไธ€ๆ–ฐ็š„็งปๅŠจ็”Ÿๆดปๆ–นๅผใ€‚ ไธบไป€ไนˆ่ฆไฝฟ็”จๅพฎไฟก๏ผš โ€ข ๅคšๅช’ไฝ“ๆถˆๆฏ๏ผšๆ”ฏๆŒๅ‘้€่ง†้ข‘ใ€ๅ›พ็‰‡ใ€ๆ–‡ๆœฌๅ’Œ่ฏญ้Ÿณๆถˆๆฏใ€‚ โ€ข ็พค่Šๅ’Œ้€š่ฏ๏ผš็ป„ๅปบ้ซ˜่พพ500ไบบ็š„็พค่Šๅ’Œ้ซ˜่พพ9ไบบ็š„ๅฎžๆ—ถ่ง†้ข‘่Šๅคฉใ€‚ โ€ข ๅ…่ดน่ฏญ้Ÿณๅ’Œ่ง†้ข‘่Šๅคฉ๏ผšๆไพ›ๅ…จ็ƒๅ…่ดน็š„้ซ˜่ดจ้‡้€š่ฏใ€‚ โ€ข WeChat Out๏ผš่ถ…ไฝŽ่ดน็އๆ‹จๆ‰“ๅ…จ็ƒ็š„ๆ‰‹ๆœบๆˆ–ๅ›บๅฎš็”ต่ฏ๏ผˆ็›ฎๅ‰ไป…้™ไบŽ้ƒจๅˆ†ๅœฐๅŒบ๏ผ‰ใ€‚ โ€ข ่กจๆƒ…ๅ•†ๅบ—๏ผšๆตท้‡ๅ…่ดนๅŠจๆ€่กจๆƒ…๏ผŒๅŒ…ๆ‹ฌ็ƒญ้—จๅก้€šไบบ็‰ฉๅ’Œ็”ตๅฝฑ๏ผŒ่ฎฉ่Šๅคฉๅ˜ๅพ—ๆ›ด็”ŸๅŠจๆœ‰่ถฃใ€‚ โ€ข ๆœ‹ๅ‹ๅœˆ๏ผšไธŽๅฅฝๅ‹ๅˆ†ไบซๆฏไธช็ฒพๅฝฉ็žฌ้—ด๏ผŒ่ฎฐๅฝ•่‡ชๅทฑ็š„็”Ÿๆดป็‚นๆปดใ€‚ โ€ข ้š็งไฟๆŠค๏ผšไธฅๆ ผไฟๆŠค็”จๆˆท็š„้š็งๅฎ‰ๅ…จ๏ผŒๆ˜ฏๅ”ฏไธ€ไธ€ๆฌพ้€š่ฟ‡TRUSTe่ฎค่ฏ็š„ๅฎžๆ—ถ้€š่ฎฏๅบ”็”จใ€‚ โ€ข ่ฎค่ฏ†ๆ–ฐๆœ‹ๅ‹๏ผš้€š่ฟ‡โ€œ้›ท่พพๅŠ ๆœ‹ๅ‹โ€ใ€โ€œ้™„่ฟ‘็š„ไบบโ€ๅ’Œโ€œๆ‘‡ไธ€ๆ‘‡โ€่ฎค่ฏ†ๆ–ฐๆœ‹ๅ‹ใ€‚ โ€ข ๅฎžๆ—ถไฝ็ฝฎๅ…ฑไบซ๏ผšไธŽๅฅฝๅ‹ๅˆ†ไบซๅœฐ็†ไฝ็ฝฎ๏ผŒๆ— ้œ€้€š่ฟ‡่ฏญ่จ€ๅ‘Š่ฏ‰ๅฏนๆ–นใ€‚ โ€ข ๅคš่ฏญ่จ€๏ผšๆ”ฏๆŒ่ถ…่ฟ‡20็ง่ฏญ่จ€็•Œ้ข๏ผŒๅนถๆ”ฏๆŒๅคšๅ›ฝ่ฏญ่จ€็š„ๆถˆๆฏ็ฟป่ฏ‘ใ€‚ ยท ๅพฎไฟก่ฟๅŠจ๏ผŒๆ”ฏๆŒๆŽฅๅ…ฅApple Watch ๅŠiPhoneๅฅๅบทๆ•ฐๆฎ๏ผŒๅฏ้€š่ฟ‡โ€œWeRun-WeChatโ€ๅ…ฌไผ—ๅทไธŽๅฅฝๅ‹ไธ€่พƒ้ซ˜ไธ‹ใ€‚ โ€ข ๆ›ดๅคšๅŠŸ่ƒฝ: ๆ”ฏๆŒ่ทจๅนณๅฐใ€่Šๅคฉๅฎคๅข™็บธ่‡ชๅฎšไน‰ใ€ๆถˆๆฏๆ้†’่‡ชๅฎšไน‰ๅ’Œๅ…ฌไผ—ๅทๆœๅŠก็ญ‰ใ€‚ โ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ Support Sites: { "WeChat ็ฝ‘็ซ™": "http://weixin.qq.com", "ๅพฎไฟก ๆ”ฏๆŒ": "http://weixin.qq.com" } โ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ ReleaseNotes: ๆœฌๆฌกๆ›ดๆ–ฐ - ็พค่ต„ๆ–™้กตๅฏไปฅๆŸฅ็œ‹ๆœ€่ฟ‘ๆ”ถๅˆฐ็š„ๅฐ็จ‹ๅบใ€‚ ๆœ€่ฟ‘ๆ›ดๆ–ฐ - ๅฏไปฅๅฏน่ง†้ข‘่ฟ›่กŒ็ผ–่พ‘ใ€‚ - ๅฏไปฅ่ฎพ็ฝฎๆŸๆกๆœ‹ๅ‹ๅœˆ็š„ไบ’ๅŠจไธๅ†้€š็Ÿฅใ€‚ โ”โ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Release: 2017-08-07 06:33:21 +0000 UTC โ”ƒ Publish: 2011-01-21 01:32:15 +0000 UTC โ”ƒ Crawled: 2017-08-10 16:27:52.707293359 +0800 CST m=+0.727757043 โ”—โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” 

Lookup App by BundleID

# lookup app by bundleID: com.tencent.smoba in default Store(CN) without extra detail itunes -b com.tencent.smoba 
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” โ”ƒ [software] 989673964 com.tencent.smoba ็Ž‹่€…่ฃ่€€ 1.20.1.21 โ”ƒ https://itunes.apple.com/cn/app/%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80/id989673964?mt=8&uo=4 โ”ƒ http://is1.mzstatic.com/image/thumb/Purple128/v4/a5/bb/e5/a5bbe51f-5ba0-575d-de94-da6f65deb3a2/source/512x512bb.jpg โ”ƒ Price: 0 CNY โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ โ”ƒ Provider: โ”ƒ	446324237 Tencent Mobile Games https://itunes.apple.com/cn/developer/tencent-mobile-games/id446324237?uo=4 โ”ƒ	Shenzhen Tencent Computer Systems Company Limited โ”ฃโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆโ”ˆ ........(too long) 

Package Usage

package provides itunes-search-api wrapper of Golang. with extra support for applications. If you are using PostgreSQL as well, it's very convient to save app data to PG.

import

import . "github.com/Vonng/go-itunes-search"

Search Example

search with keyword Hello & World๏ผŒUS AppStore๏ผŒRestrict media type to Software๏ผŒAt more 5 result.

func TestSearch(t *testing.T) { res, _ := Search([]string{"Hello", "World"}). Country(US). App(). Limit(5). Results() for _, r := range res { r.Print()	} }

result is fetched via .Results or .Result๏ผŒthe latter assert only one result is returned so it returns *Entry rather than []Entryใ€‚

Lookup Example

if you know something could used to identify a track, then lookup API may be a better approach. Instead of specifying term, you need something like iTunesID (track_id), BundleID(app only), AMG ID, etcโ€ฆใ€‚And when using lookup API, there could only be one or zero entry being returned. So the API chain may end with Result rather than Results

Here's how it works, these lookups may return same results:

Lookup().ID(414478124).Country(CN).Result() Lookup().BundleID("com.tencent.xin").Result() Lookup().Set(BundleID, "com.tencent.xin").Result()

Other examle

other small examples

SearchOne("ไธ–็•Œ").Country(CN).Entities([]string{Movie,Music}).Results() SearchOne("Love").Media(Music).Entity(MusicArtist).Limit(5).Results() Lookup().ID(529479190).Result() Lookup().Country(GB).ID(529479190).Result() Lookup().BundleID("com.supercell.magic").Result()

check api_test.go for more details & examples.

Entry

Entry is naive mapping to iTunes's response structure. iTunes orgnaize everything just like music track.

type Entry struct {	TrackID int64 `json:"trackId"` // Track	TrackName string `json:"trackName"`	TrackCensoredName string `json:"trackCensoredName"`	TrackViewURL string `json:"trackViewUrl"`	BundleID string `json:"bundleId"` // App bundle	ArtistID int64 `json:"artistId"` // Artist	ArtistName string `json:"artistName"`	ArtistViewURL string `json:"artistViewUrl"`	SellerName string `json:"sellerName"` // Seller	SellerURL string `json:"sellerUrl"`	PrimaryGenreID int64 `json:"primaryGenreId"` // Genre	GenreIDs []string `json:"genreIds"`	PrimaryGenreName string `json:"primaryGenreName"`	Genres []string `json:"genres"`	ArtworkURL60 string `json:"artworkUrl60"` // Icon	ArtworkURL100 string `json:"artworkUrl100"`	ArtworkURL512 string `json:"artworkUrl512"`	Price float64 `json:"price"` // Price	Currency string `json:"currency"`	FormattedPrice string `json:"formattedPrice"`	LanguageCodesISO2A []string `json:"languageCodesISO2A"` // Platform	Features []string `json:"features"`	SupportedDevices []string `json:"supportedDevices"`	MinimumOsVersion string `json:"minimumOsVersion"`	TrackContentRating string `json:"trackContentRating"`	ContentAdvisoryRating string `json:"contentAdvisoryRating"` // Rating	Advisories []string `json:"advisories"`	UserRatingCount int64 `json:"userRatingCount"` // Ranking	AverageUserRating float64 `json:"averageUserRating"`	UserRatingCountForCurrentVersion int64 `json:"userRatingCountForCurrentVersion"`	AverageUserRatingForCurrentVersion float64 `json:"averageUserRatingForCurrentVersion"`	Kind string `json:"kind"` // Type	WrapperType string `json:"wrapperType"`	ScreenshotURLs []string `json:"screenshotUrls"` // Screenshots	IpadScreenshotURLs []string `json:"ipadScreenshotUrls"`	AppletvScreenshotURLs []string `json:"appletvScreenshotUrls"`	IsGameCenterEnabled bool `json:"isGameCenterEnabled"` // Flags	IsVppDeviceBasedLicensingEnabled bool `json:"isVppDeviceBasedLicensingEnabled"`	FileSizeBytes string `json:"fileSizeBytes"` // Attribute	Version string `json:"version"`	Description string `json:"description"`	ReleaseNotes string `json:"releaseNotes"`	ReleaseDate string `json:"releaseDate"`	CurrentVersionReleaseDate string `json:"currentVersionReleaseDate"` } 

Entry.Print print itself in human-friendly format.

App

for those user who only interested in Application rather than music. github.com/Vonng/go-itunes-search/app provides a more precise representation of iOS application: App.

App is an enhanced version of Entity.

It provides some additinoal features:

  • more friendly & shorter field names.
  • fetch extra fields like InAppPurchase,Reviews,RelatedApps,SupportedSites, etc...
  • Parser to fetch extra fields from corresponding country's store.
  • ORM Mapping to PostgreSQL table defined in app/app.ddl , can be used by go-pg
  • Pretty print template

While it introduce two more dependency: goquery for parsing iTunes Page, go-pg for Save function.

type App struct { ID int64 `sql:",pk"` Name string URL string Icon string Kind string Version string BundleID string AuthorID int64 AuthorName string AuthorURL string VendorName string VendorURL string Copyright string // reserved GenreID int64 GenreName string Genres []string GenreIDs []int64 Icon60 string Icon100 string Price int64 `sql:",notnull"` Currency string System string Features []string Devices []string Languages []string Platforms []string // reserved Rating string Reasons []string Size int64 CntRating int64 AvgRating float64 CntRatingCurrent int64 AvgRatingCurrent float64 VppDevice bool GameCenter bool Screenshots []string InAppPurchase []string // reserved SiblingApps []int64 // reserved RelatedApps []int64 // reserved SupportSites string // reserved Reviews string // reserved Description string ReleaseNotes string ReleaseTime time.Time PublishTime time.Time CrawledTime time.Time }

Entry2App

Transform Entry to App is simple. Just use App constructor:

func NewApp(entry *Entry) (app *App) func NewDetailedApp(entry *Entry, country string) (app *App)

They both do the trick and guaranteed to success. the Latter will also fetch and parse Extra infos and omit error.

Save

app.Save(Pg)

This will save app to database using orm github.com/go-pg/pg

Parsing Extra App Info

Parsing extra reserved field is simple as :

app.ParseExtras(US)

Following fields may change during parsing, and won't change if parse failed

  • Copyright is fetch from left stack on iTunes page.
  • Screenshots from iTunes page will merge & dedupe with API's results. and do not keep difference of screenshots type: iPad, iPhone, iMessage, AppleTV, etc...
  • Platforms is infered from badge, label, screenshots, device list, etc...
  • InAppPurchase shows selling item represented as a tri-tuple <rank,price,title>
  • SiblingApps list iTunesID of apps provides by same developer shows in the app page
  • RelatedApps list iTunesID of apps recommend by apple in this app's page.
  • SupportSites show at bottom of description. k-v json object with title as key, url as value.
  • Reviews is a quad-tuple represent customer comments: <user,rating,title,content>
  • Remove CensoredName , FormattedPrice
  • Merge TrackContentRating & ContentAdvisoryRating to Rating

Dependency

go get github.com/go-pg/pg go get github.com/Sirupsen/logrus go get github.com/PuerkitoBio/goquery

Other

  • An apple daemon for crawling iTunes store.

License

WTFPL

About

iTunes Search API for Golang

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published