Get play count from top songs on Spotify - web-scraping

I'd like to track play counts of songs for popular artists. This doesn't appear to be available through the Spotify API, but it's visible either through the desktop app or the web app here. Is there a simple way to scrape this data?

No, this data isn't exposed in the public API. This feature was added as an enhancement request in the Web API's public issue tracker less than a month ago. Feel free to add support for it by writing about your use case, or by simply putting a +1.

Related

Google Play Store - web scrape top apps for every genre

Currently when I access the Google Play store from a browser (https://play.google.com/store/apps/top?hl=en), I can only see:
Top Apps, Top Selling Apps, Top Grossing Apps, Top Games, Top Selling Games, Top Grossing games.
I am trying to scrape data to get the top selling/grossing apps on the Play Store for EVERY GENRE of apps (i.e. Education, Health, Social, etc). I would've thought this data would be available on the browser Play Store because apparently it is available on the Android App Play Store. When selecting a category on the web browser Play Store, there are no options to view the top selling/grossing apps.
There are many (commercial) API's that give information on top Google Play apps for each genre so surely this information is able to be scraped from somewhere? For example Applyzer, https://www.applyzer.com/?mmenu=worldcharts shows top apps for every genre on the Play store. I would web scrape from here but I want to do this directly from Google.
Any insights would be greatly appreciated.
SOLVED: see my own post below
SOLVED: I just managed to solve this myself. Turns out the Google Play Store does display this information, but you must manually enter the URL yourself. For example: https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid BUSINESS can be replaced by any category, and topselling_paid can be interchanged with topselling_free or topgrossing

Panoramio - Will I be able to use 'get_panoramas.php' after November 4th 2016?

I saw the deprecation message and the blog post by Google and I'm completely stumped on what will continue to work and what not.
I don't upload images to my account. I understand that this service will no longer be available.
What I do use, is this api: http://www.panoramio.com/map/get_panoramas.php, for showing images near locations on my website.
Will I be able to keep using it?
If so, until when? And shouldn't that be clearly stated?
If not, is there a parallel Google Maps api to get such images? I'm aware of Google Locations api, but I'm more interested in nearby outdoors images, and not places of business and named land marks.
Thank you.
UPDATE: as stated in the comment, the service is indeed down. The image urls we already have are still operational for another year, but we can't search for other existing images anymore. So we made the transition to Flickr. It was very easy and it works great.
It is stated in the link that you provide that after November 4, 2016, you’ll continue to have access to your photos in Panoramio for a year, but take note that you will no longer be able to add new photos, likes, or comments.
I suggest you to check this Google Static Maps API, it lets you embed a Google Maps image on your web page without requiring JavaScript or any dynamic page loading. The Google Static Maps API service creates your map based on URL parameters sent through a standard HTTP request and returns the map as an image you can display on your web page.

Google Maps query businesses Near Me Search

Objective
Client wants a map on the search results page that shows a Google Map with all business listings, matching the users search parameters, that are near that user.
Background
I have a client who is building a business directory website.
This client is currently using a WordPress plugin called GeoDirectory and would like to have a map on the search results page that shows a Google Map with all business listings, matching the users search parameters, that are near that user.
These would not be the businesses on the website they would be the businesses that you would get if you did a search on Google say "restaurants near me" and it would show those businesses.
The client wants it to look exactly like the google map that results from that search so it would take the query created by the GeoDirectory plugin and show a list of businesses from the clients site that match a specific category and also a google map of other businesses in the area that are listed on Google.
Question
Is this possible?
I don't really have a link to show an example but if you type in "restaurants near me" in the google search bar and click on the map that pops up in the search results you will see what I mean.
Is it possible?
I don't know WordPress, but coming from a Google Maps background, I can definitely tell you that yes, it is possible.
What can I use?
Depending where you make your request from, you can either use the Places API Web Service (server side) or the JavaScript API with the Places Library (for client side).
For more information about the Places API and related products you can visit https://developers.google.com/places/documentation/
How can the Places API help me?
The Places API Web Service and its library for the JavaScript API have a functionality that you can use called PlacesSearch, which is exactly what you need.
Examples and Docs
To use this functionality, lets say, using the Web API, you need to make a GET request like the following:
https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters
Using the JavaScript API, you would send a request like this:
https://developers.google.com/maps/documentation/javascript/places#place_search_requests
With this information, you can include a map, and quickly get the information you need by having the user type in a text box.
The example below demonstrates how this concept works
https://developers.google.com/maps/documentation/javascript/examples/place-search

Spotify integration with Facebook OpenGraph

I'm trying to reproduce some cool things of the Spotify opengraph integration but there is one thing I understand how they do :
when you go on your spotify app profile (mine : https://www.facebook.com/antonio.mendespinto/music) you can see that the musician links points to the facebook page and not the spotify web pages (http://open.spotify.com/artist/7CajNmpbOovFoOoasH2HaY). How do they do that.
Also, is it this that lets Facebook to do behind the scenes the nice box in the artists page https://www.facebook.com/ogp/464730384564/ on the top showing friends interactions with the artist and spotify friend interactions.
Everything seems to point to the facebook pages instead of the spotify pages. How do they do that?
Yes, Spotify uses Facebook Open Graph Music, a predefined set of objects and properties for music.
https://developers.facebook.com/docs/opengraph/music/
Then I guess the Spotify account is marked in a way that makes this available. It is possible that this is what makes Facebook show the nice box in the artist page.
I work at Spotify, but I am not really sure about all the details of this. I know other music streaming services also use this, but I am not sure if it still requires a special account. It did in the beginning. Spotify was one of the first users of Open Graph.
The destination of the links inside Open Graph artifacts are left to the discretion of the developer. Say you're writing an app that lets people share restaurant tips. When you post a "Tip" object to OG, you naturally would include a link to the restaurant. As the app developer, you could choose the restaurant's web page, its Yelp page, its OpenTable page, your own representation of the restaurant page on your web site or any other web page on the internets. :-)
Being faced with a similar situation, I chose to use my own application's web page representing a restaurant. I experimented with using the restaurant's Facebook page (which I had to look up using the Graph API for search) as well as a third-party provider of restaurant information, e.g. Yelp. Using the Facebook page, my app felt more tightly integrated with Facebook, but I didn't get the luxury of having my own Facebook app metadata. Because I chose to link to my own restaurant page, I was able to set and retrieve whatever metadata I wanted, which really came in handy later when I started configuring aggregations.
I don't know how Spotify data surfaces on artist pages nor do I know how they managed to shoehorn song AND album objects into each listen post on OpenGraph, e.g.: "Chris listened to Torn and Frayed on Exile on Main Street." I could only ever get ONE object linked to an action, e.g. "Chris left a tip on California Pizza Kitchen." My assumption is that since they were one of the (if not the only) Facebook Open Graph launch partner, they probably had some inside help.

Is there anything wrong with the way I'm implementing a Calendar on my site?

I am setting up a website for students of a school, which must include a schedule page which will show a calendar with events populated by feeds from various teachers' calendars. After trying out a variety of scripts and tools made for showing calendars, I finally hit upon a very shoddy, hacked-together way of doing it, and I want to know if theres any specific things wrong with my implementation.
My requirements from this calendar are posted in a previous question
This is how my implementation is gonna work:
The teachers make their schedules in their own calendar programs and make those feeds available in the iCal format. A common Google account for the school subcribes to all these calendars, and so gets read only access to ALL the teacher's schedules in school.
Google Calendar has a feature that lets you select some of your calendars, and then get the html code for an iframe to embed on your website, so that visitors to the site can see what events are coming up. When I experimented around with the options in the Google 'Configurator', I found that by simply including certain codes in the url called for the iframe contents, you could change which calendars were visible. These codes, or calendar ids, are clearly displayed in the settings for each calendar. Thus, my final solution is thus:
For every student, there is a record stating which courses he has taken, and hence which calendars he should be shown. With some SQL magic, I can retrieve the calendar ids from a pre-prepared database of all the calendar ids, and then generate the correct url for the iframe using php, and display it.
I hope that wasn't too convoluted to understand. Now can anyone tell me if there are any inherent security flaws or bad programming practices etc in this. Something about the whole idea of dynamically generating urls, using iframes, using a common google account etc just screams 'Mistake!'. Can someone tell me if this is an ok way to go about it, or is there some problem with it?
Actually, I think your solution has the potential to be very secure. Using a single google account to collect the read-only calendars into one place is just an organizational shortcut. As long as the calendars themselves are read-only, your single account contains nothing that isn't already public.
Generating URLs is perfectly reasonable, as long as you are combining strings that you've sanitized beforehand. Since your database can only get calendar IDs from your aggregation google account, you know that potentially malicious users can't cause arbitrary characters to end up in your synthesized URLs.
The biggest problem you'll probably run into is that the google embedded calendar iframe only allows up to ten calendar feeds.
The most likely security vulnerability you'll face is the security of all of the teachers' google calendars.
By default, google calendars accept "invitations" and post them as events. You might find that anyone can "invite" a teacher's calendar to prank events and those prank events will then show up on student calendars.

Resources