Skip to content

Instantly share code, notes, and snippets.

@lennier1
lennier1 / download_twitch_m3u8.py
Created April 22, 2025 20:04
Download available segments of partially corrupted Twitch videos
#!/usr/bin/env python3
"""
Twitch highlight mirror – resilient, resumable, and verbose-friendly.
* Reads a plain-text file (one .m3u8 URL per line) passed on the command line.
* Creates a `downloads/<playlist-name>` directory for each list.
* Saves the original `.m3u8` file beside its segments for reference.
* Downloads every `.ts` segment.
* **HTTP 403 → skip immediately** (segment really is gone).
* **Timeouts / transient errors → retry up to 3×** with exponential back-off.
#!/usr/bin/env python3
import sys
import re
def main():
if len(sys.argv) < 2:
print("Usage: generate_askfm_assets.py filename1 [filename2 ...]")
sys.exit(1)
input_filenames = sys.argv[1:]
#!/usr/bin/env python3
import sys
import argparse
def generate_urls(low_id, high_id, v2=False):
if low_id > high_id:
print("Error: low_id must be less than or equal to high_id.")
sys.exit(1)
for id_num in range(low_id, high_id + 1):
@lennier1
lennier1 / veoh_category_scraper.py
Last active October 25, 2024 06:13
Scrape Veoh video IDs from a specified category
import argparse
from playwright.sync_api import sync_playwright, TimeoutError as PlaywrightTimeoutError
import time
import sys
def scrape_veoh_videos(category, output_file, min_page=1, max_page=None, length_filter='all', reverse=False, language=None, subtitle=None, sort='recent', log_file=None):
video_ids = set()
total_videos_found = 0
# Function to handle logging
@lennier1
lennier1 / check_abandoned_users.py
Last active May 10, 2023 18:22
Identify Twitter users that haven't tweeted since a cutoff date
import ast
import json
from datetime import datetime
import subprocess
user_tuples = []
# Load user_tuples from the file
with open('legacy_verified_usernames.txt', 'r') as file:
data = file.read()
@lennier1
lennier1 / expand_urls_from_csvs.py
Created May 10, 2023 05:20
Expand link-shortened URLs from .csv files for Twitter imgur results
import csv
import requests
import re
import sys
import glob
from urllib.parse import urlsplit
from time import sleep
def expand_url(short_url):
try:
@lennier1
lennier1 / extract_ids_from_links.py
Created May 23, 2022 16:55
Extract IDs from app store links, organize based on international availability
@lennier1
lennier1 / appstorescraper_knownids.py
Created May 23, 2022 16:50
Scrape apps from app store when you already know the IDs
from itunes_app_scraper.scraper import AppStoreScraper
from itunes_app_scraper.scraper import AppStoreCollections
import sys
import time
countryCode = "kr"
scraper = AppStoreScraper()
unprocessedAppIds = set() # identified but not queried ids kept here