Athletes filled the stadium floor before the Olympic flame was extinguished

The Tokyo Olympics, postponed and played out behind closed doors because of the Covid pandemic, concluded with an upbeat ceremony in Japan’s capital.

The Games took place without spectators and athletes were barred from venturing outside the Olympic village.

Their staging has faced local opposition and around 30 protestors jostled with police at the National Stadium before the closing ceremony.

However other locals have braved heat and warnings to watch events from afar.

Fans took in outdoor events, such as triathlon and BMX, from overpasses and other vantage points despite temperatures that reached 35C, the hottest ever recorded at an Olympics.

Fans watch BMX freestyle from a bridge
Barred from spectating in venues, some local fans found vantage points to take in events like the freestyle BMX

The Games’ official sign-off, featuring ska bands, football freestylers, breakdancers and BMX riders, created more made-for-TV memories, culminating in athletes thanking the people of Japan by making a heart gesture with their hands.

A scaled-down parade of flagbearers, missing 62 of the competing nations, started proceedings in Tokyo before an air display team painted the French tricolore across the sky in Paris, the host city for 2024.

Tokyo 2020 president Seiko Hashimoto, who appeared at seven Games as a speed skater and then a track cyclist, told the athletes: “There are no words to describe what you have achieved.

hard work and perseverance overcome unbelievable challenges.”

She added: “This has made you true Olympians.”

Athletes had daily swabs to test for coronavirus and wore face masks when not eating, training or competing. After they had finished competing, they had 48 hours to leave the athletes’ village.

Ghana finished the competition with one bronze medal as Samuel Takyi ended the country’s 29-year wait for a medal at the games.



NULL Invalid API key or channelobject(stdClass)#8493 (1) { ["error"]=> object(stdClass)#8309 (3) { ["code"]=> int(403) ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["errors"]=> array(1) { [0]=> object(stdClass)#8445 (3) { ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["domain"]=> string(13) "youtube.quota" ["reason"]=> string(13) "quotaExceeded" } } } }