Psychopy Builder not pulling mp4 files from excel or recognising variable with a $

OS: Mac Mojave 10.14.6
PsychoPy version (e.g. 1.84.x): psychopy 3 v2021.2.3
Standard Standalone? (y/n) If not then what?:
What are you trying to achieve?:

Hi all, I am trying to build an experiment which pulls in mp4 files from an excel file in a loop. The experiment runs until the first fixation cross is presented, before the first mp4 file should be displayed. It then closes and I get 2 errors ( see below). The experiment is not pulling through these mp4 files from the excel folder.

Note: I am very new to coding so please give additional information if the solution does involve coding. I also have the psychopy programme on an external hardrive - not my laptop - not sure if this is anything to do with it?

What did you try to make it work?:

Can’t find a solution on the forum
the excel file is located next to the experiment file
mp4 files are located in the same folder as the excel file and the experiment file
the mp4 files are named correctly in the excel spreadsheet, as they appear in my experiment folder (named Entropy Study)
I have also noticed that when using $ to add the variable to the TextDebug it does not change font. I have been following Jason Ozubko’s tutorial linked here. I have done that exact same as him, however using my own stimuli but I get these errors.

I have attached screenshots, my excel sheet and my experiment file
Entropy Experiment FIle.psyexp (29.2 KB)
stimuli_list.xlsx (9.3 KB)


What specifically went wrong when you tried that?:
The first error is a pop-up from psychopy3 saying that psychopy unexpectantly quit. Details below

Traceback (most recent call last):
File “/Volumes/My Passport for Mac 1/”, line 123, in whileRunningFile
File “/Volumes/My Passport for Mac 1/”, line 644, in onProcessEnded
File “/Volumes/My Passport for Mac 1/”, line 140, in onProcessEnded
AttributeError: ‘NoneType’ object has no attribute ‘stdOut’

The second is in the Psychopy runner:

48.4116 INFO Loaded monitor calibration from [‘2022_02_10 15:26’]
Generating PsychoPy script…

Running: /Users/hannahtyler/Documents/Entropy Study/Entropy Experiment

52.1390 INFO Loaded monitor calibration from [‘2022_02_10 15:26’]
1.1119 WARNING We strongly recommend you activate the PTB sound engine in PsychoPy prefs as the preferred audio engine. Its timing is vastly superior. Your prefs are currently set to use [‘sounddevice’, ‘PTB’, ‘pyo’, ‘pygame’] (in that order).
7.4386 WARNING User requested fullscreen with size [1024 768], but screen is actually [1440, 900]. Using actual size
2022-04-30 13:37:44.510 python[33622:5678438] ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to (null)
2022-04-30 13:37:52.656 python[33622:5678438] IMKClient Stall detected, please Report your user scenario attaching a spindump (or sysdiagnose) that captures the problem - (imkxpc_attributesForCharacterIndex:reply:) block performed very slowly (1.33 secs).
Traceback (most recent call last):
File “/Volumes/My Passport for Mac 1/”, line 285, in ffmpeg_parse_infos
line = [l for l in lines if keyword in l][index]
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/Users/hannahtyler/Documents/Entropy Study/Entropy Experiment”, line 666, in
File “/Volumes/My Passport for Mac 1/”, line 120, in call
return obj(*args, **kwargs)
File “/Volumes/My Passport for Mac 1/”, line 137, in init
File “/Volumes/My Passport for Mac 1/”, line 226, in loadMovie
self._mov = VideoFileClip(filename, audio=(1 - self.noAudio))
File “/Volumes/My Passport for Mac 1/”, line 91, in init
File “/Volumes/My Passport for Mac 1/”, line 36, in init
File “/Volumes/My Passport for Mac 1/”, line 291, in ffmpeg_parse_infos
filename, infos))
OSError: MoviePy error: failed to read the duration of file stimuli_list.xlsx.
Here are the file infos returned by ffmpeg:

ffmpeg version 4.1-tessus static FFmpeg binaries for macOS 64-bit Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=–static --disable-ffplay
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
stimuli_list.xlsx: Invalid data found when processing input

You are providing the filename of an Excel spreadsheet to the “Movie file” field of your movie stimulus component. This causes an error, because spreadsheets aren’t movies.

That spreadsheet should instead be specified as the conditions file in your Experiment_Trial_Loop loop’s dialog. When that is done, the column headers in the spreadsheet became available to your script as variable names. Once that is done, in your movie component’s “Movie file” field, you can simply put $entropy_stim, to load the movie specified in a given row of your spreadsheet.


Thanks Michael