Lorenzo Angeli

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Lorenzo Angeli

  1. Hi @Tom Mikota, although we allow to take control the versioning system this is something I would highly discourage of doing if not for extreme and well planned cases, as it would risk to compromise your versions consistency. Is always better let have ftrack come up with the right version at publish time. (more than one user could be in the process of publishing the same version , hitting a conflict !) . If you want go ahead anyhow here is a little snippet for you to use (again please be careful), to publish a new version under a shot: import ftrack_api s = ftrack_api.Session() asset = s.query('Asset').first() shot = asset['parent'] status = s.query('Status').first() version = s.create('AssetVersion', { 'asset': asset, 'status': status, 'comment': 'Added more leaves.', 'task': shot, 'version': 1000 }) s.commit()
  2. Glad to hear ! If there's anything else we can help out with , just let us know ! L.
  3. Hi @John Su, please have a look in the sources of the session : https://bitbucket.org/ftrack/ftrack-python-api/src/1f20fcd0f68d2db5188c995d1b5a34791dd7c066/source/ftrack_api/session.py#lines-263 Hope this clarify further how the environment are handled without connect running. L.
  4. Hi @John Su the environment variables (guess we are still referring to FTRACK_EVENT_PLUGIN_PATH ) is only handled locally by the session object of the api, and does have nothing to do with the path resolution itself. This environment variable will tell the local event hub where to pick the plugins from. One of this plugin is the resolved which , once loaded, will respond to an event emitted from the server, returning the resolved path. >> but in this case ftrack-python-api doesn't get chance to do the work I'm not sure I'm getting this.... The ftrack-python-api (session) are used as part of the resolved itself, to return the resolved path to the server. https://bitbucket.org/ftrack/ftrack-connect/src/80850248fc57c232fa6267bfdeb87f3d3427b706/resource/hook/resolver.py#lines-30 If you need more information on how the session and the event hub works I'd suggest digging into our docs : http://ftrack-python-api.rtd.ftrack.com/en/stable/handling_events.html L.
  5. Hi @John Su , The web browser obviously does not know nothing about your local environment variables. These are used only from ftrack session (ftrack-python-api) and ftrack connect to discover their plugins. The resolution server side is done through the ftrack event system which will instruct the server (through the socket) on how to handle the final path rendered in the ui. Hope it helps. L.
  6. Hi @John Su, For what I can see it seems you don't have installed ffmpeg on the server, can you please double check ? On this subject you can find more information on our documentation: https://help.ftrack.com/en/articles/1040538-installing-ffmpeg-and-ffprobe Hope it helps! L.
  7. hehe, that's what comments are for Glad you sorted it ! Cheers. L.
  8. Great, let us know if you find any issue ! Cheers. L.
  9. Hi @Tom Mikota, glad to see you managed to get your head around the query system ! overall to keep in mind: <query>.all() --> return all result or an empty list <query>.one() --> return the result or error if not found <query>.first() --> return the result or None if not found You can find more details in our api documetation Hope it helps. L.
  10. Hi @Tom Mikota it seems the root logger is set to debug somewhere. you can try for now to set this on top of your script: import logging logging.basicConfig(level=logging.INFO) Hope it helps. L.
  11. Hi @Tom Mikota I know well what you are doing as I've been doing this with Ffmpeg before and I can confirm all works as it should. My suggestion is to produce two videos, one prores 4XX for local review purposes and one mp4 for web review. To manually set the video you can use this : http://ftrack-python-api.rtd.ftrack.com/en/stable/example/web_review.html?highlight=upload which won't re encode it . Hope it helps. L
  12. Lorenzo Angeli


    Hi, I've replied at your support ticket. A potential solution is on its way. L.
  13. Lorenzo Angeli


    Hi @guiramalho, I'm in the process of checking if there's any better way of doing the frame extraction, but what you are seeing are the default settings used by Hiero for the PosterFrame (which is what we are currently using internally) There are various ways you can define which frame to be used for now, either on the source clips: https://learn.foundry.com/nuke/content/timeline_environment/ingest/searching_bins.htm Or on the project settings: https://learn.foundry.com/nuke/content/timeline_environment/conforming/project_settings.html I'll reply to your ticket when I've more news about updates on the code side. Cheers. L.
  14. @John Su, I've finished off testing now the remote encoding using as example a file (ProRes HQ 422 ) I downloaded from here the encode has been done with the following code: import ftrack_api session = ftrack_api.Session() version = session.query('AssetVersion').all()[-1] version.encode_media('c://path/to/PRORESHQ.mov') The remote encoding task finishes successfully and I can play back the video in the component. Hope it helps. L.
  15. Hi @John Su, please have a look in here, by the end you'll find instructions on how to access the logs. Cheers. L.
  16. Lorenzo Angeli


    Hi @guiramalho , this seems to be a file from the nuke studio integration . The code for the thumbnail in there is quite simple and pick the mid frame, please feel free to drop an email to support with suggestions on how it should behave and we'll be looking into it. Cheers. L.
  17. No python api session in browser, the information between the desktop (path) and the server will be transmitted through the event system.
  18. Hi @John Su, I'll check this asap. Would you mind sending the logs to support@ftrack.com ? They might contain some sensible information. Cheers. L.
  19. The environment variable will tell the session object where to pick up its plugins (the resolve in this case). The resolve will then submit to the server the information on how to represent the component path through the event I've been linking you previously. Hope it makes more sense this way. L.
  20. Hi @John Su, sounds strange should work, but I'll double check. out of curiosity what size were these files ? Cheers. L.
  21. Hi @John Su, you can find some more information about the plugin ftrack environment paths here. Overall though the env does not have to be known by the server as is up to the session object to discover it and put it to the use. The resolve scripts uses the ftrack events to notify the server about the resolved path of the component . ftrack event system is quite powerful and I'd suggest digging deeper looking in here. You can also find more examples on how to use events in our recipes repository. Hope it helps. L.
  22. Download 1.2.1 What's new Fix QStringListModel compatibility for PySide2 5.9+.
  23. Lorenzo Angeli


    Download 2.2.2 What's new Changed: Replace QtExt with QtPy to support latest pyside2 How to install stop ftrack-connect-package remove previous nuke studio plugin from : <ftrack-connect-package>/resource/connect-standard-plugins/ download and uncompress the new version in : <ftrack-connect-package>/resource/connect-standard-plugins/ restart ftrack-connect-package
  24. Download 0.4.2 What's new Fix QStringListModel compatibility for PySide2 5.9+. Known issues Instability still present in max 2020 , currently under investigation.
  25. HI @Jakub Trllo, >> I hope this issue is not caused because we don't have newest ftrack_api version I've been checking this with the one of latest api (1.8.0), but I would expect the same behaviour from previous versions too. If you suspect is an api version issue please let me know what version are you using so I can try to replicate. >> Api do not return `None` if default value is set  Setting the default value on the custom attribute indeed override the None if the value is not set, that's what is for. >> If value is not set, `None` should be returned If you want it to return None, you simply have to leave the default value empty, tested now and seems to be working as expected. >> [....] if all parents don't have set that custom attribute's value then default should be returned like values in web app. On checking the previous hierarchy item, that's something I'd leave to the coder to implement as custom logic , rather than providing it by default (as it might cause confusion) Hope it helps! L.