# ☁️ How I Downloaded 85 Videos From Google's Open Cloud Bucket — With 20 Lines of Python

**URL:** <https://onehack.st/t/how-i-downloaded-85-videos-from-googles-open-cloud-bucket-with-20-lines-of-python/317903>\
**Category:** Tutorials & Methods\
**Tags:** learning, tips-tricks\
**Created:** [February 4, 2026, 10:26am UTC](https://onehack.st/t/how-i-downloaded-85-videos-from-googles-open-cloud-bucket-with-20-lines-of-python/317903 "2026-02-04T10:26:57Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Orkut](https://onehack.st/user_avatar/onehack.st/orkut/32/166852_2.png) [@Orkut](https://onehack.st/u/Orkut)\
**Post date:** [February 4, 2026, 10:26am UTC](https://onehack.st/t/how-i-downloaded-85-videos-from-googles-open-cloud-bucket-with-20-lines-of-python/317903/1 "2026-02-04T10:26:58Z")

</div>

# ☁ How I Downloaded 85 Free Videos From Google’s Public Cloud — With a Simple Python Script

Google left a bucket of videos sitting in the open. I wrote 20 lines of Python to grab them all.

No hacking. No passwords. No “exploits.” Just a public storage folder that anyone can access — and a script to automate the download. Here’s how it works and what you can learn from it.

* * *

### 🗺 The Backstory — How I Found This

Google has a showcase called **Flow TV** — a public demo site showing off video content:

- 🔗 [https://labs.google/flow/tv/](https://labs.google/flow/tv/)

While watching, I got curious. Where are these videos actually stored? So I did what any nosy person would do — I looked at the video URL.

It pointed back to something called a **Google Cloud Storage bucket**. Think of it like a public folder on Google’s servers. And this one? Wide open. No login required. No password. Just… files sitting there for anyone to grab.

* * *

> **☁️ WTF Is a Cloud Storage Bucket? (Dumb-Proof Explanation)**
>
> Imagine Google Drive — but for developers and companies.
> 
> Instead of sharing files through a link like normal humans, companies store their images, videos, and data in these “buckets” on Google’s cloud servers. Each bucket has a URL, and inside it are files (called “objects”).
> 
> **The important part:** Buckets can be set to **public** (anyone can see everything) or **private** (locked down, needs a key).
> 
> This bucket? **Public.** No lock on the door. The files inside were video assets Google uses for their Flow TV demo — and the bucket listing was readable by anyone who knew the URL.
> 
> That means you could:
> 
> - See every file stored in the bucket
> - Read metadata about each file (size, name, date)
> - Download any file directly
> 
> No tricks. That’s just how public buckets work.

* * *

## 🔍 What I Found

The bucket URL:

```auto
https://storage.googleapis.com/gweb-tveo-website.appspot.com/

```

When you visit a public GCS bucket, it returns an **XML file** — basically a structured list of everything stored inside. Each file entry looks something like this:

```xml
<Contents>
  <Key>videos/some-video-name.mp4</Key>
  <Size>12345678</Size>
  <LastModified>2025-01-15T10:30:00Z</LastModified>
</Contents>

```

**Key** = the file path. **Size** = file size. That’s your download list right there.

The pattern to build a download link:

```auto
https://storage.googleapis.com/{bucket-name}/{object-key}

```

So for every `.mp4` file listed in that XML → build the URL → download it. That’s it.

**Result:** ~85 publicly accessible videos. All downloadable. All legit.

* * *

## 🐍 The Python Script (20 Lines)

This script reads the XML listing, finds every `.mp4` file, builds the download URL, and grabs them all automatically.

> **📜 Full Script — Copy & Run**
>
> ```python
> import xml.etree.ElementTree as ET
> import requests
> import os
> 
> BUCKET = "https://storage.googleapis.com/gweb-tveo-website.appspot.com/"
> OUTPUT_DIR = "videos"
> os.makedirs(OUTPUT_DIR, exist_ok=True)
> 
> tree = ET.parse("videos.xml")
> root = tree.getroot()
> ns = {"ns": "http://doc.s3.amazonaws.com/2006-03-01"}
> 
> for contents in root.findall("ns:Contents", ns):
> key = contents.find("ns:Key", ns).text
> if not key.endswith(".mp4"):
> continue
> 
> url = BUCKET + key
> local_path = os.path.join(OUTPUT_DIR, key)
> os.makedirs(os.path.dirname(local_path), exist_ok=True)
> 
> print(f"Downloading: {key}")
> r = requests.get(url, stream=True)
> if r.status_code == 200:
> with open(local_path, "wb") as f:
> for chunk in r.iter_content(8192):
> f.write(chunk)
> else:
> print(f"Failed: {url}")
> 
> ```

> **🧩 What Each Part Does — For People Who Don't Code**
>
> | Line | What It Does (In English) |
> | --- | --- |
> | `import ...` | Loads the tools the script needs — XML reader, web downloader, file manager |
> | `BUCKET = "..."` | The address of Google’s public storage folder |
> | `OUTPUT_DIR = "videos"` | Creates a “videos” folder on your computer to save downloads |
> | `tree = ET.parse("videos.xml")` | Opens the XML file (the list of everything in the bucket) |
> | `for contents in root.findall(...)` | Loops through every file listed in the XML |
> | `if not key.endswith(".mp4")` | Skips anything that isn’t a video file |
> | `url = BUCKET + key` | Builds the full download link for each video |
> | `requests.get(url, stream=True)` | Downloads the video in small chunks (so it doesn’t eat all your RAM) |
> | `with open(...) as f:` | Saves each chunk to a file on your computer |
> | `print(f"Failed: {url}")` | Tells you if a download didn’t work |
> 
> **That’s the entire script.** Read a list → filter for videos → download each one. No magic.

> **▶️ How to Actually Run This**
>
> **You need:**
> 
> - Python 3 installed on your computer
> - The `requests` library (run `pip install requests` in terminal)
> 
> **Steps:**
> 
> 1. Visit the bucket URL in your browser — it’ll show you the raw XML
> 2. Save that page as `videos.xml` in a folder
> 3. Save the Python script above as `download.py` in the same folder
> 4. Open terminal/command prompt in that folder
> 5. Run: `python download.py`
> 6. Watch 85 videos download automatically into the `videos` folder
> 
> Takes a few minutes depending on your internet speed. That’s it.

* * *

## 🧠 What You Can Learn From This

This isn’t about “getting free videos.” The videos themselves aren’t that interesting — they’re demo content for a Google showcase.

**The real value is understanding:**

- **How cloud storage works** — companies store assets in buckets, and sometimes those buckets are public
- **How media delivery pipelines operate** — websites load videos from cloud storage, not from the website server itself
- **How to turn manual curiosity into automation** — instead of clicking 85 links one by one, 20 lines of Python does it in minutes
- **How XML metadata works** — structured data that lists everything in a storage system, readable by code
- **Why bucket security matters** — if you’re ever building something with cloud storage, this is why you lock your buckets down

* * *

> **⚠️ Important Disclaimer**
>
> - This was a **public bucket** — no authentication, no bypassing, no scraping
> - Accessing publicly listed files on a public URL is the same as visiting any website
> - This is a **learning exercise** — not a vulnerability report or a “hack”
> - The script only works on **publicly readable** buckets — private buckets will just return an access denied error
> - If you work with GCS, AWS S3, or Azure Blob Storage — **audit your bucket permissions**. Misconfigured public buckets are one of the most common cloud security mistakes

* * *

**20 lines of Python. 85 videos. Zero passwords. That’s what happens when a storage bucket is left open. 🪣**
