technically yes, since you can actually edit Animation Track Properties via script.
$AnimationPlayer.get_animation("YourAnimationName").track_set_key_value(track_key_index:int, key:int, value:Variant)
track_key_index is the track of your animation that you want to edit, since animation can have several tracks(starting from 0). Key is the index(starting from 0) of the Animation key in the timeline (the diamond thingies you set)
and finally the value, that you want to change.
For example, let's say I have an animation that moves a square sprite and scale it.
the track would be:
Sprite
[/] <> position: <0> <1> <2> <3>
[/] <> scale: <0> <1> <2>
position's trackkeyindex would be 0,
and scale's trackkeyindex would be 1,
I would then access the Keys(the diamond thingies on the timeline) starting at index 0 from left to right. Then change their value to however I want. Likeso:
var anim = $AnimationPlayer
#code....code#
anim.get_animation("MoveSprite").track_set_key_value(0, 0, Vector2(2,4))
As for Animation Speed, although I haven't found a situation to use it yet. Under Playback Options in the [Inspector] Tab of your AnimationPlayer, there are properties such as Process Mode, Default Blend time and Speed, which we can probably access and modify via script.
(whispers: To be honest, I've only messed with the AnimationPlayer via script for my global background music tracks in order to dynamically change their volume. I kinda have an autocrossfade when changing scenes using the AnimationPlayer, so I had to acess the volume properties and make sure they don't exceed the current set volume in the settings...anyways I digress)