Faits :
A.
Par jugement du 5 septembre 2019, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a libéré A._ des chefs de prévention de brigandage qualifié et d'extorsion par brigandage qualifié et a constaté qu'il s'était rendu coupable de brigandage et d'extorsion par brigandage. Il l'a condamné à une peine privative de liberté de 18 mois, sous déduction de 2 jours de détention avant jugement, avec sursis partiel portant sur 12 mois et délai d'épreuve de 3 ans. Il a renoncé à révoquer le sursis accordé le 22 août 2015 par le Ministère public du canton de Fribourg, mais a averti A._ et prolongé le délai d'épreuve de 2 ans. Le Tribunal correctionnel a en outre pris acte de la reconnaissance de dette de A._ en faveur de C._ et s'est prononcé sur le maintien au dossier de certains objets à titre de pièces à conviction ainsi que sur les frais et indemnités d'office.
B.
Par jugement du 3 juin 2020, la Cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel formé par A._ et l'appel joint du ministère public vaudois.
En bref, elle a retenu les faits suivants:
B.a. Le 30 décembre 2015, vers 22h30, A._ et D._ se sont postés à l'entrée d'une maison close à X._. Lorsque B._ est passé à cet endroit, ils lui ont barré le chemin; A._ l'a alors saisi par le col de la veste pour l'immobiliser tandis que D._ lui a demandé de lui donner son porte-monnaie. Pris de boisson et incapable de s'échapper, B._ les a laissés prendre le porte-monnaie. Les deux individus ont pris la fuite et ont acheté une Paysafecard avec les 70 fr. contenu dans le porte-monnaie, au moyen de laquelle ils ont joué au poker en ligne. B._ s'est constitué partie plaignante au pénal comme au civil.
B.b. Le 31 décembre 2015, ayant perdu l'argent misé au poker en ligne, D._ et A._ sont retournés à X._ et se sont postés dans le même hall d'entrée dans le but de détrousser quelqu'un, afin de se refaire. Ils ont alors rencontré C._ qui s'était arrêté au même endroit pour attendre un ami. Après être monté à l'étage pour s'assurer que personne d'autre n'arrivait, A._ a notamment demandé à C._ de ne pas le regarder car il était de nationalité albanaise, avant de lui asséner un coup de poing à la joue droite pour l'intimider. D._ a enchaîné en empoignant C._ et en exigeant qu'il lui donne ce qu'il avait sur lui, faute de quoi il sortirait son couteau. La victime lui a remis son porte-monnaie dont D._ a extrait un billet de 50 fr. et 15 euros. Il a ensuite exigé de C._ qu'il vide ses poches et s'est ainsi fait remettre un téléphone portable. D._ et A._ ont ensuite quitté les lieux. Le premier a vendu le téléphone pour la somme de 400 francs. La moitié de ce montant était censée revenir à A._, tout comme la moitié des espèces dérobées; celui-ci n'a toutefois rien reçu.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 3 juin 2020. Il conclut principalement à sa réforme en ce sens qu'il soit condamné à une peine privative de liberté de 9 mois, sous déduction de la détention déjà subie et qu'il soit mis au bénéfice d'un sursis total et non partiel, le délai d'épreuve étant de 3 ans. Il conclut également à ce que les frais de la cause à sa charge soient fixés à 3'487 fr. 85 et que les frais d'appel (5'215 fr. 50) soient mis à la charge de l'État de Vaud et ne soient pas remboursables. Subsidiairement, il conclut à ce qu'il soit condamné à une peine privative de liberté de 12 mois, sous déduction de la détention avant jugement et qu'il soit mis au bénéfice d'un sursis total et non partiel. Il forme les mêmes conclusions s'agissant des frais. Plus subsidiairement, il demande l'annulation du jugement et le renvoi de la cause à l'autorité cantonale pour nouveau jugement dans le sens des considérants. Il sollicite en outre le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
Le recourant fait grief à la cour cantonale d'avoir établi les faits et apprécié les preuves de manière arbitraire et d'avoir violé la présomption d'innocence, en retenant qu'il était impliqué dans le brigandage commis au préjudice de B._, intimé, le 30 décembre 2015.
1.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins que celles-ci n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, à savoir pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (<ref-ruling> consid. 1.3.1 p. 91 s.; <ref-ruling> consid. 1.1 p. 155 s.; <ref-ruling> consid. 2.3.1 p. 244). En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables. Le Tribunal fédéral n'entre ainsi pas en matière sur les critiques de nature appellatoire (ATF <ref-ruling> consid. 1.1 p. 156; <ref-ruling> consid. 2.4 p. 368 et les références citées).
1.2. La présomption d'innocence, garantie par les art. 10 CPP, 32 al. 1 Cst., 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe "in dubio pro reo", concernent tant le fardeau de la preuve que l'appréciation des preuves au sens large. En tant que règle sur le fardeau de la preuve, elle signifie, au stade du jugement, que le fardeau de la preuve incombe à l'accusation et que le doute doit profiter au prévenu. Comme règle d'appréciation des preuves, la présomption d'innocence signifie que le juge ne doit pas se déclarer convaincu de l'existence d'un fait défavorable à l'accusé si, d'un point de vue objectif, il existe des doutes quant à l'existence de ce fait. Il importe peu qu'il subsiste des doutes seulement abstraits et théoriques, qui sont toujours possibles, une certitude absolue ne pouvant être exigée. Il doit s'agir de doutes sérieux et irréductibles, c'est-à-dire de doutes qui s'imposent à l'esprit en fonction de la situation objective. Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe "in dubio pro reo", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 1.3.1 p. 91 s; <ref-ruling> consid. 1.1 p. 155 s. et les références citées).
1.3. En l'espèce, pour retenir l'implication du recourant dans le brigandage commis au détriment de l'intimé, la cour cantonale a retenu que sa mise en cause par D._ était parfaitement crédible (sur cette appréciation cf. consid. 1.4.4 infra). Plusieurs éléments venaient en outre l'étayer. Ainsi, les deux agressions s'étaient déroulées au même endroit, à quelques heures d'intervalle seulement et selon un mode opératoire parfaitement similaire. Or il n'était pas concevable que D._ ait pu, en pleine nuit et en l'espace de quelques heures, changer de coéquipier pour se livrer à un deuxième brigandage identique au premier, d'autant qu'il avait été signalé faisant le pied de grue avec le recourant, au même endroit, le lendemain du deuxième brigandage, vers 2h du matin. De plus, quand bien même l'intimé n'avait pas été en mesure d'identifier le recourant et son comparse, il avait fourni un signalement qui leur correspondait; le fait que C._ ait donné une description légèrement différente de ses agresseurs était sans incidence puisque les deux intéressés avaient admis leur implication dans ce deuxième cas. Mais l'élément le plus accablant restait la conversation téléphonique que le recourant avait eue avec D._ le 27 février 2016. La cour cantonale a par ailleurs écarté le témoignage de E._, père du recourant, selon lequel ce dernier serait resté auprès de sa famille le soir des faits.
1.4. Le recourant conteste cette appréciation. Il soutient qu'au vu des éléments de preuves présents au dossier, la cour cantonale aurait dû se convaincre qu'il n'avait pas participé à l'agression de B._, ou à tout le moins admettre que des doutes sérieux subsistaient quant à l'identité du comparse de D._ lors de ce brigandage, le doute profitant à l'accusé.
1.4.1. Il se prévaut tout d'abord de sa conversation téléphonique du 27 février 2016 avec D._. Selon lui, le fait d'avoir nié, lors de cette discussion, toute implication au premier brigandage sans même se savoir écouté, démontrait qu'il était cohérent dans ses déclarations.
Ce faisant, le recourant se borne toutefois à opposer sa propre appréciation des preuves à celle de la cour cantonale sans démontrer l'arbitraire de celle-ci. En particulier, il ne discute pas la constatation de la juridiction précédente selon laquelle, si le recourant avait certes conclu la conversation téléphonique en répétant à plusieurs reprises qu'il n'était pas avec son interlocuteur lors du premier racket, on pouvait toutefois entendre ce dernier sincèrement médusé et stupéfait par cette affirmation, qu'il avait d'abord contredite avant de sembler l'assimiler à une plaisanterie. En outre, avant cette conversation, le procureur avait évoqué la possibilité de se procurer les enregistrements de caméras de surveillance pour établir si le véhicule du recourant se trouvait déjà à X._ le 30 décembre vers 22h. Or la cour cantonale a considéré qu'en demandant à D._ s'il pensait que la police allait pouvoir visionner les vidéos, le recourant avait exprimé une inquiétude qui n'aurait pas eu lieu d'être s'il était réellement arrivé sur les lieux après le premier racket; le recourant ne s'en prend pas non plus à cette motivation. Enfin, la juridiction cantonale a constaté qu'en se référant à C._, le recourant avait expliqué à son comparse que "pour lui", il avait dit ce qui s'était passé. Puis, lorsque D._ lui avait demandé pourquoi il n'avait pas avoué les deux cas, il n'avait nullement clamé son innocence, se contentant d'indiquer que "pour l'autre" il avait dit qu'il n'était pas avec lui, avant d'émettre une sorte de pouffement laissant entendre qu'il s'était moqué de la police. Le recourant n'expose pas en quoi cette appréciation serait arbitraire, se contentant d'affirmer, de manière appellatoire, qu'une telle interprétation révélerait la volonté de la cour cantonale de se convaincre, malgré ce qui se dit entre lui et son comparse, de vouloir les condamner tous les deux pour les deux cas. Son grief est irrecevable.
1.4.2. Le recourant reproche en outre à la juridiction précédente d'avoir remis en cause le témoignage de son père alors que celui-ci aurait été catégorique quant à sa présence au domicile familial lors de l'infraction en cause et dont l'honnêteté serait démontrée par le fait qu'il n'avait pas tenté de le couvrir pour le brigandage commis au préjudice de C._.
En l'occurrence, la cour cantonale a expliqué de manière claire et convaincante les raisons pour lesquelles les déclarations de E._ n'étaient pas de nature à instiller le moindre doute quant à l'implication du recourant dans le cas commis au préjudice de B._. Ainsi, il était étonnant que le père du recourant - qui avait indiqué que ce soir-là, toute la famille avait regardé la télévision jusqu'à minuit environ - ait pu être aussi catégorique sur l'emploi du temps de sa famille, 28 jours après les faits, alors qu'il n'était pourtant pas capable de se remémorer son propre horaire de travail le jour en question. Il n'avait en outre pas fait mention d'un détail ou d'un repère temporel qui aurait permis de se convaincre qu'il distinguait bien cette soirée des autres et en gardait un souvenir précis. Il avait par ailleurs indiqué de manière erronée que le recourant n'était pas sorti le soir en question avant de chercher à se rattraper en indiquant que si son fils était sorti, il n'était pas au courant. Enfin, la cour cantonale a souligné que ce témoignage, qui émanait d'un proche du recourant, n'avait de toute manière qu'une très faible valeur probante. Le recourant n'expose ni ne développe en quoi cette appréciation serait insoutenable. Pour le surplus, le fait que son père ne l'aurait pas couvert pour le cas commis au préjudice de C._ n'est pas pertinent dès lors que le recourant avait admis son implication dans ce cas. Le grief doit être rejeté dans la faible mesure de sa recevabilité.
1.4.3. En outre, selon le recourant, le fait que l'intimé ne l'ait pas identifié et qu'il ait donné une description de ses agresseurs qui ne correspondait pas à celle de C._, s'il ne constituait pas un indice irréfutable de son absence d'implication dans le premier racket, il mettrait néanmoins indubitablement en doute la version retenue par la cour cantonale. Ce faisant, le recourant se contente cependant une fois de plus de présenter sa propre appréciation des preuves dans une démarche purement appellatoire. Son grief est irrecevable.
1.4.4. Le recourant se prévaut également des doutes du ministère public quant à son implication dans le brigandage en cause, exprimés dans le courrier du 4 février 2016 au Tribunal des mesures de contrainte, dont il ressortirait que D._ aurait pu le mettre en cause uniquement parce qu'il lui en voulait de l'avoir dénoncé. D'après le recourant, l'instruction n'aurait, depuis lors, rien dévoilé de plus, de sorte qu'en faisant fi des doutes émanant de l'accusation, la cour cantonale aurait démontré une volonté aveugle de le condamner pour les deux cas.
Le recourant ne saurait être suivi. Les juges cantonaux ont précisément indiqué que, comme l'avait relevé le ministère public lorsqu'il avait saisi le Tribunal des mesures de contrainte d'une demande de surveillance téléphonique, il était possible de concevoir que D._ eût impliqué le recourant dans le cas de l'intimé uniquement pour lui faire payer ses aveux dans le cas de C._ et protéger le véritable complice. Ils ont toutefois indiqué les raisons pour lesquelles cette hypothèse devait être écartée. Ainsi, une fois les premières dénégations passées, D._ n'avait pas seulement mis en cause le recourant mais s'était aussi entièrement expliqué sur sa propre participation, ce qui dénotait une volonté manifeste d'en finir avec les mensonges. Sa version du déroulement de la soirée était en outre parfaitement logique et cohérente, notamment lorsqu'il avait évoqué la nécessité de se déplacer à chaque fois avec le recourant qui disposait d'un permis et d'une voiture tandis qu'il était pour sa part sous le coup d'une mesure de retrait de permis, ou encore lorsqu'il avait expliqué qu'il avait commis le deuxième racket après avoir perdu tout le butin du premier en jouant en poker en ligne. De plus, D._ n'avait pas cherché à accabler le recourant en précisant par exemple qu'il ne pouvait pas affirmer que ce dernier avait frappé C._. Enfin, il avait confirmé que le recourant était bien impliqué dans le cas concernant l'intimé lors de l'audience de première instance qui s'était déroulée près de quatre ans après les faits, soit à un moment où une éventuelle rancoeur n'avait plus aucune raison d'être et où l'intéressé avait par ailleurs démontré qu'il était rentré définitivement dans le droit chemin. Aussi, la cour cantonale a-t-elle considéré que D._ était parfaitement crédible lorsqu'il mettait en cause le recourant. Celui-ci ne démontre pas en quoi cette appréciation serait insoutenable, se contentant d'affirmer qu'il n'était pas étonnant que D._ ait campé sur ses positions quatre ans après les faits puisqu'en changeant de version il serait passé pour quelqu'un de peu fiable, pas crédible, de mauvaise foi, incapable de dire la vérité et risquait ainsi une peine plus importante. Un tel procédé, purement appellatoire, est inadmissible. Pour le surplus, en tant qu'il soutient que depuis les doutes émis par le ministère public, l'instruction n'aurait rien dévoilé de plus, il se borne à substituer, une fois encore de façon appellatoire, sa propre appréciation des preuves à celle de l'autorité précédente. Le moyen est irrecevable.
1.4.5. Le recourant fait en outre grief à la cour cantonale de n'avoir pas tenu compte de ses aveux spontanés s'agissant de la deuxième agression. A cet égard, il se borne toutefois à indiquer qu'il ne discernerait pas les raisons pour lesquelles il nierait farouchement avoir détroussé et violenté l'intimé quatre ans après les faits, ajoutant que selon le cours ordinaire des choses et l'expérience de la vie, un prévenu qui admettrait spontanément un cas, se livrerait également sur un éventuel second cas de même nature et de même gravité. Purement appellatoire, cette argumentation est irrecevable.
1.4.6. En définitive, sur la base d'une appréciation des preuves exempte d'arbitraire, la cour cantonale pouvait retenir, sans violer le droit fédéral, que le recourant était impliqué dans le brigandage commis au préjudice de l'intimé.
2.
Le recourant conteste la quotité de la peine privative de liberté prononcée.
Il ne présente toutefois à cet égard aucun grief recevable. En effet, son argumentation est sans objet en tant qu'elle suppose sa libération des chefs d'accusation liés au brigandage commis à l'encontre de l'intimé, qu'il n'obtient pas (cf. consid. 1.4.6 supra). Pour le surplus, en tant qu'il se prévaut de ses aveux, des excuses présentées à C._ et de la somme de 400 fr. qu'il lui a remise, il ne fait valoir aucun élément à décharge dont la juridiction cantonale n'aurait pas déjà tenu compte (cf. jugement attaqué, consid. 4.3, p. 21).
3.
Condamné à une peine privative de liberté de 18 mois, le recourant soutient qu'il devrait bénéficier d'un sursis complet et non uniquement d'un sursis partiel.
3.1. Selon l'art. 42 al. 1 CP, dans sa teneur jusqu'au 31 décembre 2017, le juge suspend en règle générale l'exécution d'une peine pécuniaire, d'un travail d'intérêt général ou d'une peine privative de liberté de six mois au moins ou de deux ans au plus lorsqu'une peine ferme ne paraît pas nécessaire pour détourner l'auteur d'autres crimes ou délits. Aux termes de l'art. 43 al. 1 CP, dans sa teneur jusqu'au 31 décembre 2017, le juge peut suspendre partiellement l'exécution d'une peine pécuniaire, d'un travail d'intérêt général ou d'une peine privative de liberté d'un an au moins et de trois ans au plus afin de tenir compte de façon appropriée de la faute de l'auteur. Ces dispositions sont applicables en l'espèce sans égard à la modification entrée en vigueur le 1 er janvier 2018, qui n'est pas plus favorable au recourant (cf. art. 2 al. 2 CP; arrêts 6B_44/2020 du 16 septembre 2020 consid. 8.1; 6B_1127/2018 du 27 septembre 2019 consid. 1.2; 6B_658/2017 du 30 janvier 2018 consid. 1.1).
Lorsque la durée de la peine privative de liberté se situe, comme en l'espèce, entre un et deux ans, permettant donc le choix entre le sursis complet (art. 42 CP) et le sursis partiel (art. 43 CP), l'octroi du sursis au sens de l'art. 42 CP est la règle et le sursis partiel l'exception. Celui-ci ne doit être prononcé que si, sous l'angle de la prévention spéciale, l'octroi du sursis pour une partie de la peine ne peut se concevoir que moyennant l'exécution de l'autre partie. La situation est comparable à celle où il s'agit d'évaluer les perspectives d'amendement en cas de révocation du sursis. Lorsqu'il existe, notamment en raison de condamnations antérieures, de sérieux doutes sur les perspectives d'amendement de l'auteur, qui ne justifient cependant pas encore, à l'issue de l'appréciation de l'ensemble des circonstances, un pronostic concrètement défavorable, le tribunal peut accorder un sursis partiel au lieu du sursis total. On évite ainsi, dans les cas de pronostics très incertains, le dilemme du "tout ou rien". Un pronostic défavorable, en revanche, exclut tant le sursis partiel que le sursis total (<ref-ruling> consid. 3.1.1 p. 280; <ref-ruling> consid. 5.3.1 p. 10).
Pour formuler un pronostic sur l'amendement de l'auteur, le juge doit se livrer à une appréciation d'ensemble, tenant compte des circonstances de l'infraction, des antécédents de l'auteur, de sa réputation et de sa situation personnelle au moment du jugement, notamment de l'état d'esprit qu'il manifeste. Il doit tenir compte de tous les éléments propres à éclairer l'ensemble du caractère de l'accusé et ses chances d'amendement. Il ne peut accorder un poids particulier à certains critères et en négliger d'autres qui sont pertinents (<ref-ruling> consid. 2.1 p. 185 s.; <ref-ruling> consid. 4.2.1 p. 5). Le défaut de prise de conscience de la faute peut justifier un pronostic défavorable, car seul celui qui se repent de son acte mérite la confiance que l'on doit pouvoir accorder au condamné bénéficiant d'un sursis (arrêts 6B_1176/2020 du 2 juin 2021 consid. 3.1; 6B_682/2017 du 11 décembre 2017 consid. 3.1).
Le juge doit par ailleurs motiver sa décision de manière suffisante (cf. art. 50 CP). Sa motivation doit permettre de vérifier s'il a tenu compte de tous les éléments pertinents et comment ils ont été appréciés (<ref-ruling> consid. 2.1 p. 185 s. et les références citées). Dans l'émission du pronostic, le juge dispose d'un large pouvoir d'appréciation, de sorte que le Tribunal fédéral n'intervient qu'en cas d'abus ou d'excès de ce pouvoir (<ref-ruling> consid. 2.2 p. 139).
3.2. La cour cantonale a retenu un pronostic mitigé. Elle a tout d'abord constaté que le recourant avait de mauvais antécédents et qu'il avait par ailleurs agi durant le délai d'épreuve qui lui avait été imparti par le Ministère public du canton de Fribourg le 28 août 2015, démontrant ainsi qu'il n'était pas digne de la confiance qui lui avait été octroyée. Il s'était en outre complu, à tout le moins jusqu'aux débats de première instance, dans une forme d'oisiveté en bénéficiant, durant de longues années, du revenu d'insertion tout en vivant chez ses parents. S'il avait effectivement eu un emploi temporaire entre-temps, pendant trois mois, on ne pouvait pas parler d'une situation professionnelle stable; il émargeait à nouveau à l'aide sociale et ses projets d'avenir restaient toujours aussi flous. De plus, la juridiction précédente a considéré que si le fait d'avoir payé la somme de 400 fr. à C._ plaidait en sa faveur, il était contrebalancé par le fait qu'il avait attendu deux mois après l'audience de première instance, soit près de quatre ans après les faits et sans respecter l'échéance prévue, pour finaliser ce geste. Au surplus, la cour cantonale a retenu que la prise de conscience du recourant n'était que partielle dès lors qu'il persistait à nier son implication dans l'un des deux cas reprochés.
3.3. Le recourant fait valoir qu'en considérant ses aveux, la réparation du dommage et sa volonté à se remettre au travail, une peine ferme paraîtrait bien trop sévère et inadaptée, contrairement au sursis qu'il considère comme étant suffisamment adéquat et adapté pour le détourner de toute incartade pénale.
En l'occurrence, le recourant ne saurait se prévaloir d'aveux complets puisqu'un tel argument suppose qu'il n'aurait pas participé au premier racket, ce qu'il n'est pas parvenu à démontrer (cf. consid. 1.4.6 supra). A cet égard, en tant que la cour cantonale a considéré que les dénégations partielles du recourant démontraient un défaut de prise de conscience, lequel, en sus des autres éléments relevés, justifiait un pronostic mitigé, son raisonnement ne suscite aucune critique. Pour le surplus, en tant que le recourant se prévaut de la réparation du dommage envers C._, il ne discute nullement la motivation de la juridiction cantonale à cet égard; son moyen est irrecevable. Il en va de même de ses affirmations selon lesquelles il aurait retrouvé un travail ou aurait la volonté de se remettre au travail, qui s'écartent de manière inadmissible des faits retenus par la juridiction cantonale (cf. art. 99 al. 1 et 105 al. 1 LTF). Partant, fondée sur des éléments pertinents qui permettaient de retenir que le pronostic était mitigé, la cour cantonale n'a pas violé le droit fédéral en refusant le bénéfice d'un sursis complet. Le grief s'avère par conséquent infondé.
4.
Le recourant critique la répartition des frais de première et deuxième instance. Son argumentation est sans objet dans la mesure où elle suppose sa libération des chefs d'accusation liés au brigandage commis au préjudice de B._, qu'il n'obtient pas (cf. consid. 1.4.6 supra).
5.
Il s'ensuit que le recours doit être rejeté dans la faible mesure de sa recevabilité. Étant donné qu'il était d'emblée dénué de chance de succès, l'assistance judiciaire doit être refusée (art. 64 al. 1 LTF). Le recourant supporte les frais de la cause, qui seront fixés en tenant compte de sa situation économique, qui n'apparaît pas favorable (art. 65 al. 2 et 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 19 juillet 2021
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
La Greffière : Paris