Old remotes can be re-purposed:
Following this Post using the IR sensor connections - forget the LEDs just for reading codes:

https://stevepedwards.today/maker.pro/arduino/tutorial/how-to-control-leds-with-arduino-ir-sensor-and-remote
#include <IRremote.h>
#define first_key 48703
#define second_key 58359
#define third_key 539
#define fourth_key 25979
int receiver_pin = 8;
int first_led_pin = 7;
int second_led_pin = 6;
int third_led_pin = 5;
int fourth_led_pin = 4;
int led[] = {0,0,0,0};
IRrecv receiver(receiver_pin);
decode_results output;
void setup()
{
Serial.begin(9600);
receiver.enableIRIn();
pinMode(first_led_pin, OUTPUT);
pinMode(second_led_pin, OUTPUT);
pinMode(third_led_pin, OUTPUT);
pinMode(fourth_led_pin, OUTPUT);
}
void loop() {
if (receiver.decode(&output)) {
unsigned int value = output.value;
switch(value) {
case first_key:
if(led[1] == 1) {
digitalWrite(first_led_pin, LOW);
led[1] = 0;
} else {
digitalWrite(first_led_pin, HIGH);
led[1] = 1;
}
break;
case second_key:
if(led[2] == 1) {
digitalWrite(second_led_pin, LOW);
led[2] = 0;
} else {
digitalWrite(second_led_pin, HIGH);
led[2] = 1;
}
break;
case third_key:
if(led[3] == 1) {
digitalWrite(third_led_pin, LOW);
led[3] = 0;
} else {
digitalWrite(third_led_pin, HIGH);
led[3] = 1;
}
break;
case fourth_key:
if(led[4] == 1) {
digitalWrite(fourth_led_pin, LOW);
led[4] = 0;
} else {
digitalWrite(fourth_led_pin, HIGH);
led[4] = 1;
}
break;
}
Serial.println(value);
receiver.resume();
}
}
an old Philips TV remote showed codes for buttons 1-0 and Off - note contact bounce repeats;
01:20:47.878 -> 9985
01:20:48.010 -> 9985
01:20:50.492 -> 9986
01:20:54.363 -> 9987
01:20:54.462 -> 9987
01:20:56.845 -> 9988
01:20:56.944 -> 9988
01:20:58.201 -> 9989
01:20:58.301 -> 9989
01:21:00.121 -> 9990
01:21:00.220 -> 9990
01:21:01.610 -> 9991
01:21:01.709 -> 9991
01:21:02.999 -> 9992
01:21:03.099 -> 9992
01:21:05.084 -> 9993
01:21:05.183 -> 9993
01:21:06.507 -> 9984
01:21:06.639 -> 9984
01:21:14.778 -> 9996
01:21:17.624 -> 9996
01:21:19.510 -> 9996