He has played first class rugby since 2004 and spent the bulk of his career at French club Brive, making 121 appearances between 2007 and 2012. He started his career at the Leopards – where he also represented South Africa at Under-21 level – before moving on to Griquas and also playing Super Rugby for the Cheetahs in 2006 and 2007. He then joined Brive for five seasons and had a short loan spell at Grenoble before returning to South Africa to play for the Eastern Province Kings and in Super Rugby for the Kings.
Cooke attended Hoërskool Noord-Kaap in Kimberley, where he was selected to represent Griquas at high school level.
He started his career at the Leopards, playing for them in the Under-20 Provincial Championships in 2003 and 2004. He made his first class debut in 2004, playing off the bench in their match against the Blue Bulls in the 2004 Vodacom Cup. Despite only playing for the final eight minutes of the match, Cooke scored his first try in the same in the 36–47 defeat. He also played in their 19–32 defeat to the Border Bulldogs in their next match. He also made his debut in the First Division of the Currie Cup in the same season; he was used as a late replacement in their match against the Eastern Province Kings in the 2004 Currie Cup First Division, before starting his first class match, a 26–23 victory over the East Rand-based Falcons team in a 26–23 victory. He started one more match in the competition, against the Border Bulldogs in East London, before reverting to the Under-20 side.
In 2005, Cooke was a key member of the Leopards team that competed in the 2005 Vodacom Cup competition; he started six of their seven matches during the group stage of the competition and scored six tries, the top try scorer for the Leopards in the competition and just one behind top try scorers Alshaun Bock and Renfred Dazel. He scored a hat-trick in their 48–41 victory over the Golden Lions in Round Two of the competition and one try against the Falcons in a 30–17 win to help the Leopards finish the competition in second place on the Section Y log to qualify for the semi-finals for the second time ever. Cooke also started their 17–11 victory over the Blue Bulls in the semi-final to help them to their first final. Despite scoring two tries in the final, Cooke could not help them to victory, with Griquas winning the match 27–25 to win their second Vodacom Cup title.
After the 2005 Vodacom Cup competition, he was also included in the South Africa Under-21 team that played at the 2005 Under 21 Rugby World Championship held in Argentina He made three appearances in the competition, helping South Africa to win the competition for the second time, beating Australia in the final.
He returned to domestic action for the Leopards in the 2005 Currie Cup qualification series; he made four appearances and scored a try in their match against the Griffons to finish in fourth spot of the Section Y log to help the Leopards qualify for the Premier Division. He maintained his form from the Vodacom Cup competition to score six tries in seven appearances in the Currie Cup to again be the Leopards' top try scorer. He scored two tries in their home match against the Golden Lions, one try each in their 50–47 victory over the Boland Cavaliers – their only win of the campaign – their away match against the Golden Lions, a 43–65 loss to the Sharks and their defeat to the Boland Cavaliers in Wellington. However, he could not prevent the Leopards finishing bottom of the log and being relegated to the First Division in 2006.
Following the Leopards' relegation, Cooke returned to Kimberley, the city where he grew up and his parents still lived, to join Griquas for 2006. Griquas was also part of the new Bloemfontein-based Cheetahs Super Rugby franchise – due to play independently of the Cats for the first time in the 2006 Super 14 season, following the competition's expansion form 12 teams previously – meaning Cooke was eligible to represent them. He was subsequently included in their final squad and was named as the starting outside centre in their first ever match, a match against the Bulls in Bloemfontein. While winger Eddie Fredericks scored the Cheetahs' first ever try in Super Rugby, Cooke scored their second, dotting down in the final minutes of a 18–30 defeat. He retained the number 13 jersey for the duration of the campaign, starting all thirteen of their matches as they finished in tenth position on the log. In addition to his opening round try, he also scored against the Brumbies in Canberra, the Chiefs in Hamilton and in their 28–23 victory over former franchise partners, the Cats, only finishing second on the Cheetahs' try-scorers list to winger Giscard Pieters. He made his first start for Griquas in August 2006 – almost a year after they secured his signature – in the 2006 Currie Cup Premier Division, scoring a try on debut in a 20–31 defeat to the Free State Cheetahs. He made further appearances in wins against the Pumas and the Falcons to help Griquas finish in sixth spot on the log.
Cooke made eleven appearances for the Cheetahs in the 2007 Super 14 season, scoring one try as the Cheetahs beat the Waratahs 30–26 in Round Three of the competition, to help the Cheetahs finish the competition in eleventh spot on the log. He scored tries against Western Province and Falcons in a total of ten appearances a Griquas side that again finished sixth in the 2007 Currie Cup Premier Division.
In October 2007, he joined French Top 14 team Brive. He made his debut for them in their 15–6 victory over Irish side Connacht in the 2007–08 European Challenge Cup. He played in five of their six matches in the pool stage of the competition, helping them finish second in Pool 3 of the competition to qualify for the quarter finals. He also started their quarter final match against English side Sale Sharks, but could not prevent his side being beaten 24–49 to be knocked out of the competition. Domestically, he played in sixteen matches for Brive during the 2007–08 Top 14 season, starting twelve of those matches. He scored one try during the season in their match against Bourgoin in a 29–13 victory in Round 13 of the competition, helping Brive to finish in 11th position in the competition.
Cooke played in 23 of Brive's 26 matches during the 2008–09 Top 14 season, making 21 starts. He scored tries in matches against Stade Français and Clermont to help Brive finish the season in sixth spot, their highest placing since the competition was reduced to 14 teams in 2005–06 and also enough to help them qualify for the 2009–10 Heineken Cup. He also made four appearances in the 2008–09 European Challenge Cup, scoring a try in the first minute of their pool stage match against the Newcastle Falcons as Brive topped Pool 4. Cooke scored two tries in their quarter final match against Worcester Warriors, but it was not enough as the English team ran out 29–18 winners to eliminate Brive at this stage of the competition for the second consecutive season.
Cooke made his debut in the Heineken Cup in their 2009–10 match against Leinster. He made a further three appearances and scored his first Heineken Cup try in their Round Six defeat to the Scarlets, but Brive had a disappointing season, losing all six of their matches in the pool stage of the competition. In the Top 14, they won 11 of their 26 matches to finish the season in ninth place. Cooke featured in 19 of their matches and scored tries in matches against Albi, Perpignan} and Bourgoin over the course of the season.
The 2010–11 Top 14 season was Cooke's most prolific season for Brive, as he scored five tries in twenty starts. However, it was a generally disappointing season for the side, as they won just 8 matches all season to finish in 12th place, just outside the relegation places. In contrast, they won all six of their matches in the 2010–11 European Challenge Cup pool stage to top Pool 2 of the competition. Cooke played in three matches in the competition, including both victories over second-placed side Sale Sharks, but he didn't feature in the knock-out stages as Irish side Munster beat Brive 42–37 in their quarter final match to eliminate the French side from the competition.
Brive repeated the feat of winning all six of their matches in the 2011–12 European Challenge Cup pool stage to top Pool 5 with the second-best record in the competition. Cooke featured in two of those six matches, before starting their 15–11 victory over Welsh side Scarlets in the quarter final and in his first semi-final appearance, which ended in a 0–19 defeat to fellow Top 14 side and eventual champions Biarritz. Despite Cooke enjoying his best season with Brive in the European competitions, the team struggled in the 2011–12 Top 14; they finished in 13th position to be relegated to the Pro D2 competition for 2012–13. Cooke scored a single try in his 22 starts in the competition, in a 22–9 victory over fellow relegated side Lyon.
His contract expired at the end of the 2011–2012 and he left Brive, having made a total of 121 appearances in the Top 14, Heineken Cup and Challenge Cup competitions in five seasons.
After his contract with Brive expired, he joined fellow Top 14 team Grenoble at the start of the 2012–13 season as a medical joker, replacing the injured Aaron Bancroft. He made five appearances for the newly promoted Grenoble during the 2012–13 Top 14 season and a further two appearances in the 2012–13 European Challenge Cup, but failed to score in either competition.
He returned to South Africa to play for the Port Elizabeth-based Kings in the 2013 Super Rugby season. He started their first ever Super Rugby match, a 22–10 victory over the Force in Port Elizabeth. He became a key player for the Kings throughout the season, starting fifteen of their sixteen matches in the competition. He scored two tries – the first proved to be a mere consolation try as the Kings lost 30–46 to the Hurricanes in Wellington, but his second two weeks later proved crucial as it helped the Kings to a 30–27 victory in Melbourne. The Kings won three matches and drew one match over the course of the season to finish bottom of the South African Conference and qualify to a relegation play-off series against the Lions. Cooke started both matches, but could not prevent the Kings losing 42–44 on aggregate to lose their Super Rugby status for 2014.
Cooke also started four matches for the Eastern Province Kings in the 2013 Currie Cup First Division competition. Just two of those came during the regular season, as the Kings finished in second position on the log. He also started their semi-final match, which the Eastern Province Kings won 32–29 after extra time, and the final, which they lost 30–53 to the Pumas. A decision from the South African Rugby Union to increase the Premier Division from six teams to eight saw both finalists being promoted to the 2014 Currie Cup Premier Division.
Cooke didn't play any first class rugby at the start of the season following a decision by the Eastern Province Kings coaching staff to rest senior players during the 2014 Vodacom Cup. He was selected in the starting line-up for the Eastern Province Kings side that faced Wales in June 2014 in a tour match during their 2014 tour of South Africa. He played the entire match as the Kings suffered a 12–34 defeat. He started in all ten of their matches in the Eastern Province Kings' return to the Currie Cup Premier Division. He scored one try in their second match of the season, a 19–60 defeat to the Golden Lions in Johannesburg, and one more try in their final match; after losing their first nine matches in a row, Cooke helped his side to their only victory of the season by beating the Pumas 26–25 in Port Elizabeth.
Cooke featured in five of the Eastern Province Kings' seven matches in the 2015 Vodacom Cup. His side only won three of their matches to finish the season in fifth spot on the Southern Section log to miss out on a quarter final berth. He also played in four matches in the 2015 Currie Cup Premier Division as the EP Kings marginally improved on their 2014 showing, finishing in seventh position, having won two matches.