Google Maps Photos Scraper | Videos, Menu, Food & Vibe
Pricing
from $0.25 / 1,000 photo or video extracteds
Google Maps Photos Scraper | Videos, Menu, Food & Vibe
Download Google Maps photos, videos, and Street View by category: Menu, Food, Vibe, Rooms, Amenities, Inside, Exterior, From visitors, By owner, and Latest.
Pricing
from $0.25 / 1,000 photo or video extracteds
Rating
0.0
(0)
Developer
LurkAPI
Maintained by CommunityActor stats
2
Bookmarked
261
Total users
33
Monthly active users
0.076 hours
Issues response
10 hours ago
Last modified
Categories
Share
Google Maps Photos & Videos Scraper
Download every public photo, video, and Street View image from a Google Maps place, with the original category label attached. See what is on the menu, what the rooms look like, which images the owner chose, and what customers uploaded most recently.
Each media item is its own dataset row, so you can filter by category, join on a stable media ID, and bill only for usable results. No Google API key, browser setup, or custom code required.
💡 Why this scraper
Most Google Maps photo scrapers hand you one flattened gallery. This one keeps the Maps structure intact:
- All 13 tabs: All, Menu, Food & drink, Vibe, Rooms, Amenities, Inside, Exterior, From visitors, By owner, Latest, Videos, and Street View.
- The category on every row: separate menu shots from room photos, owner uploads from visitor photos, and recent uploads from the full gallery.
- Full galleries, not a sample: collect up to 10,000 media rows from a single place.
- One row per media item: filter, deduplicate, and join without unpacking a place-level JSON blob.
- Videos that play: a direct MP4
videoUrlplusvideoDurationwhere Google exposes it. - Street View images stored for you: the image is saved to the run's key-value store, not just referenced by a URL.
- Direct ChIJ Place IDs: no
place_id:URL workaround required. - Keyword search with real geography: constrain places by location, circle, or polygon.
- Bulk input: up to 1,000 combined Maps URLs and Place IDs in one run.
🎯 What you can answer
- Menu and food audits: Which restaurants have menu photos, which dishes do customers photograph, and which listings are using stock images?
- Local SEO and competitor research: Who uploads owner photos, who relies on visitors, and whose newest upload is years old?
- Hotel and venue checks: Do the rooms, amenities, lobby, and exterior match the listing?
- Real estate and travel research: Collect a visual record of a place before a visit, listing, or story.
- Image datasets: Build labeled photo sets for menu recognition, venue classification, or quality scoring.
📸 Coverage
| Tab | What it tells you |
|---|---|
| All | The complete public photo gallery |
| Menu | Whether the place has photographed menus |
| Food & drink | What guests actually ordered and photographed |
| Vibe | What the atmosphere looks like inside |
| Rooms | What the hotel rooms really look like |
| Amenities | Pool, gym, breakfast, parking, and other facilities |
| Inside | Interior condition, layout, and decor |
| Exterior | Storefront, signage, entrance, and street context |
| From visitors | The customer's view of the place |
| By owner | The images the business chose to publish |
| Latest | The newest uploads and recent changes |
| Videos | Walkthroughs, room tours, and customer clips as MP4 URLs |
| Street View | The real street-level view, stored as an image |
📄 What you get
Every row carries the identifiers and labels needed to filter, join, and audit the result:
| Field | Description |
|---|---|
rowType | media for a usable result, status for an explanatory row |
status | Success or a customer-readable outcome |
error | Stable error code, or null for successful media |
photoId | Stable Google media identifier, or null on place-level status rows |
type | photo, video, street_view, or null |
category, categoryLabel | The Maps tab the media came from |
contributorName | Public contributor display name, or null when unavailable |
imageUrl | Requested image URL or stored Street View image |
videoUrl | Playable MP4 URL for video rows, otherwise null |
videoDuration | Video length in milliseconds, present only on video rows |
storedMediaUrl | Downloaded file in the run's key-value store, when enabled |
Optional output controls cover thumbnails, dimensions, GPS coordinates, upload dates, owner flags, contributor name, source, video duration, stored media URL, place metadata, source search term, internal category code, and scrape timestamp. Contributor lookup is enabled by default and can be disabled for maximum speed.
An enabled optional value that Google does not expose is returned as null. Disabling an optional field removes it from every row type. Standard photo URLs use the selected CDN size. Width and height describe the original photo or video frame. Street View rows report the dimensions of the stored image.
📋 How to use it
- Paste Google Maps URLs, share links, Place IDs, or hex CIDs. You can also enter search terms and a location, circle, or polygon.
- Choose the tabs you need. All tabs are selected by default.
- Choose media types, image resolution, and the total media cap per place.
- Optionally enable media downloads. Contributor names are enabled by default.
- Run the Actor and export the default dataset as CSV, JSON, or Excel.
Direct inputs and search inputs can be combined in one run. Equivalent places are processed once.
Inputs that work
| Input | Example |
|---|---|
| Full Maps URL | Paste from the address bar or Copy link |
| Share link | maps.app.goo.gl or goo.gl/maps |
| Google Place ID | ChIJ... directly, with no place_id: prefix needed |
| Hex CID | 0x...:0x... |
| Keyword search | Search term plus a location, circle, or polygon |
🤖 Use it from Claude Code or another AI agent
This Actor works through the Apify MCP server. Connect your client once, then ask for the photos in plain English.
| Client | Setup |
|---|---|
| Claude Code | Run /plugin install apify, then authenticate when prompted. |
| Claude Desktop | Settings > Connectors > Add custom connector, then use https://mcp.apify.com. |
| Codex | Plugins > Add marketplace > apify/apify-codex-plugin, then install Apify. |
| Cursor | Run /add-plugin apify, or install Apify from the Plugins marketplace. |
| Other MCP clients | Add https://mcp.apify.com as a remote MCP server. |
For clients that use a JSON config:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com"}}}
On first use, sign in to Apify with OAuth. No API key is needed for the remote server.
Example prompts
Replace the {{PLACEHOLDERS}} before pasting.
Audit menu and food coverage
Use the Google Maps Photos Scraper at https://apify.com/lurkapi/google-maps-photos-and-videos-scraper to pull up to 50 newest Menu, Food & drink, and Vibe photos from {{GOOGLE_MAPS_URL}}. Group the results by category and tell me which categories look weak or missing.
Compare hotel room coverage
Use the Google Maps Photos Scraper at https://apify.com/lurkapi/google-maps-photos-and-videos-scraper to pull up to 100 Room and Amenities photos from each of these hotels: {{GOOGLE_MAPS_URL_1}}, {{GOOGLE_MAPS_URL_2}}, and {{GOOGLE_MAPS_URL_3}}. Compare which hotel shows the strongest room and amenity coverage.
Setup details: Apify MCP server and agent plugins.
🚀 Built for bulk
| Limit | Value |
|---|---|
| Combined Maps URLs and Place IDs | 1,000 |
| Search terms | 10 |
| Discovered places per search term | 120 |
| Media rows per place | 10,000 |
| Search-circle radius | 100 miles |
| Supported tabs | 13, all selected by default |
💰 Pricing
The live Pay-Per-Event configuration is:
| Event | Price | Trigger |
|---|---|---|
| Actor Start | $0.00005 | Run startup; minimum one event per run |
| Photo or video extracted | $0.00025 | One usable photo, video, or Street View row |
| Place found via search | $0.005 | One unique search place that returns at least one media row |
🆚 How it compares
| Need | This Actor | Many URL-only photo scrapers |
|---|---|---|
| Keep the Maps tab | ✅ All 13 tabs on every row | ❌ One flattened gallery |
| Use a ChIJ Place ID directly | ✅ Yes, no workaround | ❌ Often requires a place_id: URL |
| Get playable videos | ✅ MP4 URL plus duration | ❌ Often omitted |
| Keep Street View | ✅ Image stored in the run KV store | ❌ URL or category only |
| Search by area | ✅ Keyword plus location, circle, or polygon | ❌ Keyword only |
| Work with bulk inputs | ✅ Up to 1,000 direct inputs | ❌ Often a small or undocumented cap |
| Bill by usable media | ✅ One row per media item | ❌ Often one row per place |
❓ FAQ
Can I scrape all photos from one Google Maps place?
Yes. Paste the Maps URL or Place ID and keep All selected. The per-place cap goes up to 10,000 media rows.
Can I get only menu, room, or owner photos?
Yes. Select just those tabs. Every row still carries its category label.
Do you support Place IDs and share links?
Yes. Use a ChIJ Place ID, a place_id: value, a hex CID, a full Maps URL, or a share link.
Are videos and Street View included?
Yes, where Google exposes them. Video rows include a playable MP4 videoUrl and videoDuration. Street View images are stored in the run's key-value store.
Why is GPS or contributor name sometimes null?
Google does not expose GPS metadata on every upload, and some photos have no public contributor. The Actor returns null instead of guessing.
Why did I get a status row instead of photos?
Check the error code. Invalid inputs should be corrected. Unavailable places or categories can be retried later. Status rows are not billed as media rows.
🔗 Related Actors
⚖️ Disclaimer
Use this Actor only for lawful purposes and public information you are permitted to process. Platform availability and media URLs can change. Users are responsible for compliance with applicable laws and platform terms.
💬 Feedback
If this Actor saved you time, a review on the Apify Store helps other buyers find it.
Need a new feature or a different output shape? Open a request in the Issues tab.