Christian Heilmann

Author Archive

Getting all the video thumbnails from a YouTube video

Wednesday, January 11th, 2023

I just wrote myself a small tool to get all the thumbnail images available for a YouTube video.

Say you have a Youtube URL, the ID is the last part: https://www.youtube.com/watch?v=GDukVqBDd3Q, in this case “GDukVqBDd3Q”. Just copy this into the tool and you will get all the images available. You can choose to get JPG or WebP images and you can click each to see it or right-click to save it.

Result of the scraper showing all the thumbnails of a video

If you feel like doing this by hand, here are the different URLs:

  • Player Background Thumbnail (480×360):
    • https://i.ytimg.com/vi_webp/VIDEO_ID/0.webp
    • https://i.ytimg.com/vi/VIDEO_ID/0.jpg
  • Video frames thumbnails (120×90)
    • Start: https//i.ytimg.com/vi_webp/VIDEO_ID/1.webp
    • Middle: https://i.ytimg.com/vi_webp/VIDEO_ID/2.webp
    • End: https//i.ytimg.com/vi_webp/VIDEO_ID/3.webp
    • Start: https//i.ytimg.com/vi/VIDEO_ID/1.jpg
    • Middle: https://i.ytimg.com/vi/VIDEO_ID/2.jpg
    • End: https//i.ytimg.com/vi/VIDEO_ID/3.jpg
  • Lowest quality thumbnail (120×90)
    • https://i.ytimg.com/vi_webp/VIDEO_ID/default.webp
    • https://i.ytimg.com/vi/VIDEO_ID/default.jpg
  • Medium quality thumbnail (320×180)
    • https://i.ytimg.com/vi_webp/VIDEO_ID/mqdefault.webp
    • https://i.ytimg.com/vi/VIDEO_ID/mqdefault.jpg
  • High quality thumbnail (480×360)
    • https://i.ytimg.com/vi_webp/VIDEO_ID/hqdefault.webp
    • https://i.ytimg.com/vi/VIDEO_ID/hqdefault.jpg
  • Standard quality thumbnail (640×480)
    • https://i.ytimg.com/vi_webp/VIDEO_ID/sddefault.webp
    • https//i.ytimg.com/vi/VIDEO_ID/sddefault.jpg
  • Unscaled thumbnail resolution
    • https://i.ytimg.com/vi_webp/VIDEO_ID/maxresdefault.webp
    • https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg

ChatGPT will not replace programmers, but Search Engines should be worried

Friday, December 23rd, 2022

Unless you’ve lived under a rock, you probably heard of ChatGPT, OpenAI wunderkind chat bot that seemingly gives answers to any problem you throw at it. Of course people fed it with lots of programming questions and it yielded great results. This, once again, sparked a big discussion if “AI” could replace developers. I don’t know, maybe we are too socially awkward to be around or it may be that in times of recession jobs that get paid a lot more than others are targeted – who knows?

In any case, a trained ML model giving good programming answers isn’t something that confuses me – programming by definition is a logical process that can be reversed. Although, looking at 25 years of code in my career shows that humans can do a lot to not make code understandable.

Just the facts, ma’am

What ChatGPT really does well is give us the right amount of information for our questions. So if I ask it “how do I change a car battery” I get instructions how to do that in a few paragraphs. I do not get five ads for car batteries, a YouTube video of ten minutes where the first three are about not forgetting to like and subscribe and a list of outdated instructions that the search engine favoured because they are older.

I wrote about my disappointment in search engines these days some time ago, in my The web starts on page four post, and it seems to me that the meteoric rise of ChatGPT is the swift kick in the backside that the search market needs.

Search is about knowledge, not web content

Search has long ago moved away from “find this web site, I will click through to find the information I need” to “tell me what x is”, and there was an interesting period in time where search engine companies optimised for that use case. When I worked in Yahoo we came up with Yahoo Answers, and the idea was to deliver human answers to human framed questions rather than keywords and flags. And it turned into hot garbage really quickly due to gaming of the platform and not enough resources in moderating it. The same often happened to Quora or the unfortunately named Expertsexchange.

Search engines now do a great job in scraping sites to extract the most relevant content. Turned out that giving people a meta description field just leads them to spam it with keywords rather than a human readable synopsis. That’s why there is a lot of content intelligence in search bots and their databases already. Often you do get already in the description what you want.

ChatGPT and Search Engines are an unfair comparison for now

ChatGPT is now the amazing new and cool, clean thing that only gives you what you want. Google was exactly the same when it was a search box instead of a huge editorial content driven site with a search box. ChatGPT also has no monetisation model yet – and my guess is that soon it will get ads plastered over it once it moved away from the experimental stage.

Now, how come the big companies of the web that put AI on their flags for years didn’t release ChatGPT? The answer is legal repercussions. OpenAI plays it safe by calling everything a preview, beta and experiment. If ChatGPT tells me how to build a bomb using household items, that is a different thing than if it showed up in a Google or Bing result.

The other issue is attribution. Many people put content on the web to be found and to make some money. That’s OK, and search engines are a big driver of that model. If a ChatBot scraped your content and shows it without you getting any benefit from it, this could lead to a lot less content being published. Microsoft or Google showing content without attribution is a big no-no and has resulted in quite a few court cases, so that is something that needs fixing.

ChatGPT has the benefit of being an academic exercise, the others are established corporations people love to sue. Working in the moderation team of a search engine isn’t fun. It gives you a glimpse into the depths of human darkness and it is playing whack-a-mole with automated content sites and upload bots. That’s why search engines will always be seemingly slower than “live” systems like ChatGPT. With good reason – you do not want to see what content moderators have to see.

The other big issue, of course, is relevance. ChatGPT returns content with the eloquence and arrogance of a CEO at a press conference regardless of it being true or utter nonsense. We need to find a way to fix that issue. Younger me would have told you that the “wisdom of the masses”, f.e. people downvoting wrong results would fix that. But Brexit, Trump, QAnon and anything related to Russia the last 6 years made me realise that the wisdom of the masses is a fragile thing, easily confused by surveys, Facebook games and reposts.

No, for ChatGPT to become something the Googles and Microsofts of this world can use and match, it needs to get a relevance filter, and I am pretty sure that in both companies people are already firing on all cylinders getting this done.

I am looking forward to what this all means to the search engine market. Probably good news.

The (very) short story of “Ideasoft”

Thursday, December 22nd, 2022

When I was a kid, access to computers was at a premium. We had a few in school, and there were department stores that had them on display. You could do whatever you wanted with those, as the sales people in the store had no idea what they are or do (think Best Buy but without the Polo shirts – this was the 80s).

When we learned a bit of BASIC and Pascal in school, I was hooked and went to the library to get more information and to do my own things. I was terrible at painting and writing due to a bout of Meningitis as a kid leaving me with a few minor motor issues. So I thought I can make computers do that stuff for me and turn my ideas into visuals and texts. Incidentally, once I got better, programming my own solutions almost totally replaced my interest in Maths, and I donated my programs to the school library, which pleased my teacher so much he led it slip that I skipped lessons.

Whilst school computing, back then called “Informatik” or “Elektronische Datenverarbeitung” was very academic or scientific (one thing we programmed was a tool to move the school’s observatory) I already felt at the age of 11 that there is a living in this, too. My parents violently disagreed, and urged me to work in the same factory as my dad instead – albeit as an engineer to design machines. So there was a bit of overlap and trust in my abilities. Or distrust in my manual abilities, who knows.

One thing I wanted was a brand. To tell people that the program they see and use was by me, but also a company. Surely that makes it so much more important. And companies need logos. Lacking a graphics program all I got was some Math knowledge, BASIC and a line algorithm to paint on the screen, so I went for it.

The first logo idea was for a company called “Newsoft” and here is what I came up with :

Newsoft logo - a circle made from vertical lines connected to two anchor points


See the Pen
First Logo
by Christian Heilmann (@codepo8)
on CodePen.

I then got fancier and moved on to “Ideasoft”, which was a logo painted by moving around a circle and painting lines to the diagonal cosine wave :

Idea soft logo - the shape of an I made from a mesh inside a circle


See the Pen
second logo
by Christian Heilmann (@codepo8)
on CodePen.


Bear in mind that in JS and canvas this is instantaneous, but back then on the Thomson TO7-70 and later on the Commodore 64, both of those were a cool animation as the machines were that slow.

Now, as you can see, both my Math and design skills were a tad lacking (I am no Lea Verou or Ana Tudor) but it was fun to remember those days and me proudly thinking I could be a company with a few lines of code. I hope people think the same these days and don’t let them be hindered by what they would need to achieve a goal, but rather just giving it a go.

I was a freelancer for a while, and terrible at it (I hate paperwork), and Ideasoft never came to life. Ah, the things that could have been had I not frittered my life away working in a radio station and for unknowns like BMW, interAd, eToys, Agilisys, Yahoo, Mozilla and Microsoft…

Microdosing burnout – on working remote and in a different time zone

Monday, December 19th, 2022

Car engine running in very low revolutions

I’ve been working remotely in the EU for US companies for the last 15 years. On paper, this sounds like an excellent gig. You get the salaries and bleeding edge work of a US employee but you also get the job security that comes with a European contract.

If used correctly, an 8-9 hour time difference can also be a massive production boost. As someone in the EU, you can act as a communications hub between offices in China, India, Europe and the US. That way you can assure 24/7 coverage of your product. I’ve successfully managed to have that in some of the companies I worked at. But it requires a lot of factors to go right and you have to stand your ground and demand that your company works globally across time zones using processes that do not require people to sit in a room and stare at a wall together.

Interestingly the Covid pandemic helped to a degree with this. As people transitioned from going to the office to working from home a lot of the things that seem not to be a big deal but are poison for remote workers also became issues for everyone. Having to dial into the company VPN to access a file that doesn’t contain any secrets, not sitting on a fat connection next to the datacenter and not being able to constantly update your environment are just a few examples.

Where it gets tricky – work factors

The main issue with being separated from your colleagues is that you can’t work together in real time. When your role is one of delivery, that’s not that much of an issue. You triage the workload, you use version control and you leave good documentation and all is well. When your role is one of advocacy or marketing it is also not an issue. You plan for getting the information you need with a 24 hour buffer and create your materials while the colleagues are sleeping. You review them early in the day and get them out ready for your US audience to take it in.

The problems start when your career progresses and you need to do long-term planning in agreement with your team, you go into product ownership or you go into management of teams. Then you being halfway around the globe becomes a real issue.

Scrum meetings early in the day you should be part of are at the end of your day. Getting telemetry numbers and access to the latest statistics is important to keep your scores up to date. When the dashboard is unavailable to you and you need to wait 9 hours for the engineer to fix the issue you are already 24 hours behind on your reporting.

Being visible and available to your team is important. When all your engineering peers see of you is demands, you are not likely to be a cherished colleague they like to work with. It feels more like working for a client than a colleague. It is also frustrating to them as you are not immediately available to answer questions. Depending on how empowered the people delivering your product are to make their own judgement calls, or whether that is even something they feel comfortable to do, this can mean your product is stalled at least for a day as they get stuck. The other PM that owns one item down on their backlog is available – so let’s work on that instead. Meaning that PM will also do a better job than you.

Another problem is one of career and competition. A lot of the factors that get people promoted are based on knowledge and showing immediate decision making visible to your peers. There is a lot of knowledge in companies only available during lunch breaks, watercooler moments or when commuting together. None of this is available to you as a remote employee.

You are also in trouble, when your role requires you to work across departments. Say you are a product manager and your task is to do user research to validate your ideas. You can do online surveys, polls, but, if your company is big enough, you are very likely to have a user research department. You have to find a peer there to work with in the time zone of the HQ and you then have to trust them to run the study and help you collate the results. As you haven’t been part of the user research all you get is video recordings you hopefully can access and watch in a non-endless-buffering manner. And more importantly, you often get lots of pointless data as the researcher isn’t a subject matter expert and interview candidates that turn out to be completely unrelated to the users you’re looking for still get interviewed for half an hour. You could do local user research, but most of the time the user numbers and the happiness to consume is much higher in the US market than where you are.

Where it gets really tricky – personal factors

Humans are social animals. Humans also have limited brain power that is directly tied to their health and how tired they are. It is easy to say that you shift your work day, get up later, do all your chores and then start working at four until midnight. But it doesn’t work that way.

You will check your email earlier and do work – after all you tell people that the benefit of you not being where they are is that you can prepare everything they need by the time they show up for work. Which does mean that effectively, albeit having lots of time in between, you do work all day. This doesn’t work.

Unless you slept, meditated, did some sports and generally blocked everything out your brain will be slower late at night. You will not be able to make snap decisions and whilst it may be a good idea to question their validity in general, in a high paced environment working towards constant growth, this is what people will expect of you. So you try to appear all bushy tailed and ready for anything coming your way in these late night meetings but your brain complains and tells you a different story. You forget things, you can’t concentrate on all people’s demands in the meeting and that makes you ineffective. As you most likely also like them and don’t want to let them down, you feel like a bad team member and/or leader. Or you feel like an actor/impostor in a place where people are ready to seize the day and you actually are all out for the day.

With humans being social animals working remote and time-delayed also means you miss out a lot on human interaction. You need a forgiving partner, you will miss out on social events “at the end of the work day” as they are technically the beginning of your work day. It worked for Rubin Carter to show his conviction of innocence that he was up when others were in bed and vice versa but you also effectively are not available for friends and family in your own time. This whittles away on you over time and unless you want to be outside of normal life and society, it can be quite a toll on your happiness.

What to do?

It is tricky to find solutions for these issues. The main thing to work on is to keep confusion to a minimum. Instead of being in every late night meeting, you define office hours once a week where you are available for a few hours in your evening and their mornings.

You need to be incredibly diligent in your documentation, note taking and in using the systems that work asynchronously. Your backlog scenarios need to be spot on and define what you want from people and by when. You need to work with your lead peers to ensure that what you defined gets done and not more. You need to be in control of the delivery as ultimately it is your job, and any decision that you haven’t been part of will show up as a “why wasn’t this done in time” when your job is assessed.

It is a lot of work, and it needs a lot of energy to deal with frustration and not getting things done as fast as you want to. It is even more frustrating when simple processes that would cut down on confusion don’t get followed as there seems to be no benefit to people who sit in the same office anyways. All you can do is be diligent and be a great example yourself. If people benefit from great documentation, meeting notes and clear instructions in work items that you deliver, maybe, just maybe you can get the whole team to work like this.

I still think we are missing out on a huge productivity opportunity by not embracing the idea that people working on a digital product could be anywhere and anytime on this planet. But I also get a massive feeling that post-pandemic now the pendulum swings back to being super excited to lock people in a building doing a 8 to 4 again. Let’s hope I am wrong.

Photo by Chris Liverani on Unsplash

What’s new in DevTools 108 video and blooper reel

Friday, December 16th, 2022

Whenever we release a new (stable channel) version of Microsoft Edge, we also create a short video showing all the new features. This time in 108, it was my job to record it and it features my glorious flat and a Kurzgesagt hoodie.

What's new in Microsoft Edge 108 video in the browser developer tools

You can see it in the browser or on the Microsoft Edge YouTube channel .

The things I am covering are:

00:00 Introduction
00:09 Agenda
00:37 Improved navigation in Command Palette
01:08 High-contrast mode fixes
01:30 Disabled JavaScript warning
02:05 See inactive CSS properties
02:53 New documentation to create your own tools
03:58 WebDriver available on macOS on Apple M1
04:29 Use Detached Elements to find DOM leaks

It’s great to see the final product after post production, but to give you a glimpse on what’s happening behind the scenes, here is the outtake reel from my own recording :